Sobes.tech
Junior

Czym jest enkapsulacja?

sobes.tech AI

Odpowiedź od AI

Enkapsulacja to mechanizm umożliwiający ukrycie wewnętrznego stanu obiektu i ochronę go przed ingerencją z zewnątrz. Łączy dane (pola) i metody operujące na tych danych w jeden blok — klasę.

W C# enkapsulacja osiągana jest za pomocą modyfikatorów dostępu (public, private, protected, internal, protected internal, private protected) i właściwości (Properties).

Przykład z użyciem właściwości:

public class Osoba
{
    private int _wiek; // Prywatne pole

    public int Wiek // Publiczna właściwość zapewniająca kontrolowany dostęp do pola _wiek
    {
        get { return _wiek; }
        set
        {
            if (value >= 0) // Walidacja danych
            {
                _wiek = value;
            }
            else
            {
                // Można rzucić wyjątek lub wykonać inną akcję
                Console.WriteLine("Wiek nie może być ujemny.");
            }
        }
    }

    public string Imię { get; set; } // Automatycznie implementowana właściwość

    public void WyświetlInfo()
    {
        Console.WriteLine($"Imię: {Imię}, Wiek: {Wiek}");
    }
}

Zalety enkapsulacji:

  • Ukrycie implementacji: Wewnętrzne szczegóły obiektu są ukryte przed zewnętrznym kodem.
  • Kontrola dostępu: Dostęp do danych odbywa się przez metody lub właściwości, co pozwala na walidację i logikę biznesową.
  • Elastyczność: Zmiany w wewnętrznej implementacji klasy nie wpływają na zewnętrzny kod korzystający z jej interfejsu.
  • Ulepszenie utrzymania: Kod staje się bardziej uporządkowany i zrozumiały.