Przejdź do treści głównej
INF.04Programowanie Obiektowe i Paradygmaty (OOP)

Hermetyzacja (Enkapsulacja w OOP)

Jeden z fundamentalnych filarów programowania obiektowego, polegający na ukrywaniu wewnętrznego stanu obiektu (pól prywatnych) i udostępnianiu kontrolowanego dostępu przez publiczne metody/właściwości.

Na czym polega hermetyzacja?

Hermetyzacja (Encapsulation – ukrywanie implementacji) polega na powiązaniu danych (pól) z metodami operującymi na tych danych w ramach jednej klasy oraz ograniczeniu bezpośredniego dostępu do wnętrza obiektu z zewnątrz.

Modyfikatory dostępu:

  • private: Pole lub metoda widoczna wyłącznie wewnątrz tej samej klasy.
  • protected: Widoczne wewnątrz klasy oraz we wszystkich klasach pochodnych (dziedziczących).
  • public: Dostępne z każdego miejsca w programie.
  • internal / package-private: Widoczne w obrębie tego samego pakietu / zestawu (assembly).

Dlaczego stosujemy hermetyzację?

  1. Ochrona integralności stanu obiektu: Zapobiega wpisaniu niepoprawnych danych (np. ujemnego wieku czy pensji).
  2. Możliwość zmiany wewnętrznej implementacji: Zmiana typu danych pola prywatnego nie psuje kodu zewnętrznego, jeśli interfejs publiczny pozostaje ten sam.
CSHARP
public class KontoBankowe {
    private decimal saldo; // Ukryte pole prywatne

    public void Wplac(decimal kwota) {
        if (kwota <= 0) throw new ArgumentException("Kwota musi być dodatnia");
        saldo += kwota;
    }

    public decimal PobierzSaldo() => saldo; // Kontrolowany odczyt
}

Pułapki na egzaminie INF.04:

  • Ukrywanie pól składowych klasy poprzez ustawienie dla nich specyfikatora private i udostępnienie metod get / set to realizacja zasady hermetyzacji (enkapsulacji).

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Hermetyzacja (Enkapsulacja w OOP) lub rozpocznij trening.