Sobes.tech
Junior

Ce este încapsularea?

sobes.tech AI

Răspuns de la AI

Incapsularea este un mecanism care permite ascunderea stării interne a unui obiect și protejarea sa împotriva intervenției externe. Ea combină datele (câmpurile) și metodele care lucrează cu aceste date într-un singur bloc — clasa.

În C#, incapsularea se realizează prin intermediul modificatorilor de acces (public, private, protected, internal, protected internal, private protected) și proprietăților.

Exemplu cu utilizarea proprietăților:

public class Persoană
{
    private int _vârstă; // Câmp privat

    public int Vârstă // Proprietate publică care oferă acces controlat la câmpul _vârstă
    {
        get { return _vârstă; }
        set
        {
            if (value >= 0) // Validare date
            {
                _vârstă = value;
            }
            else
            {
                // Se poate arunca o excepție sau se poate efectua altă acțiune
                Console.WriteLine("Vârsta nu poate fi negativă.");
            }
        }
    }

    public string Nume { get; set; } // Proprietate auto-implementată

    public void AfișeazăInformații()
    {
        Console.WriteLine($"Nume: {Nume}, Vârstă: {Vârstă}");
    }
}

Avantajele incapsulării:

  • Ascunderea implementării: Detaliile interne ale obiectului sunt ascunse de codul extern.
  • Controlul accesului: Accesul la date se face prin metode sau proprietăți, ceea ce permite validarea și logica de afaceri.
  • Flexibilitate: Modificările în implementarea internă a clasei nu afectează codul extern care utilizează interfața sa.
  • Îmbunătățirea întreținerii: Codul devine mai structurat și mai ușor de înțeles.