Hermetyzacja w programowaniu obiektowym oznacza ukrywanie szczegółów implementacji obiektu i udostępnianie na zewnątrz jedynie kontrolowanego interfejsu (np. metod publicznych). W praktyce realizuje się to m.in. przez modyfikatory dostępu, takie jak public/protected/private, dzięki którym pola i metody pomocnicze nie są dostępne dla dowolnego kodu.
To podejście wspiera ukrywanie informacji: zewnętrzny kod nie powinien bezpośrednio zmieniać stanu obiektu w sposób niekontrolowany. Zamiast tego korzysta z metod, które mogą wykonywać walidację, utrzymywać spójność danych i chronić niezmienniki obiektu. Dzięki temu można też później zmienić implementację wewnętrzną bez konieczności zmiany sposobu użycia klasy w innych częściach aplikacji.
Dlaczego pozostałe pojęcia nie pasują?
- Polimorfizm dotyczy możliwości traktowania obiektów różnych klas przez wspólny typ oraz różnego zachowania tej samej operacji (np. przesłanianie metod). Nie opisuje "ukrywania" pól/metod przed dostępem.
- Konkatenacja oznacza łączenie (najczęściej) napisów lub sekwencji danych. To pojęcie z innego obszaru niż kontrola dostępu w OOP.
- Dziedziczenie opisuje tworzenie klasy na podstawie innej klasy i przejmowanie/rozszerzanie jej cech. Może wiązać się z dostępem do składowych, ale nie jest definicją ukrywania elementów klasy przed kodem zewnętrznym.
Wskazówka egzaminacyjna: jeśli w treści pojawia się "ukrywanie pól/metod" oraz "dostęp tylko wewnątrz klasy", najczęściej chodzi o enkapsulację/hermetyzację, a nie o dziedziczenie czy polimorfizm.