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ę?
- Ochrona integralności stanu obiektu: Zapobiega wpisaniu niepoprawnych danych (np. ujemnego wieku czy pensji).
- 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
privatei udostępnienie metodget/setto 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.