Co to jest hermetyzacja?
Hermetyzacja, nazywana też enkapsulacją, to mechanizm programowania obiektowego polegający na ukrywaniu szczegółów działania obiektu i kontrolowaniu dostępu do jego danych.
Zamiast pozwalać na bezpośrednią zmianę pól klasy, udostępnia się metody, które robią to w bezpieczny i kontrolowany sposób.
Po co stosuje się hermetyzację?
Hermetyzacja pozwala:
- chronić dane obiektu przed przypadkową zmianą,
- wymusić poprawność danych,
- ukryć szczegóły implementacji,
- uprościć korzystanie z klasy,
- łatwiej modyfikować kod bez psucia innych części programu.
Przykład w PHP
class Konto {
private float $saldo = 0;
public function wplac(float $kwota): void {
if ($kwota > 0) {
$this->saldo += $kwota;
}
}
public function pobierzSaldo(): float {
return $this->saldo;
}
}
Pole $saldo jest oznaczone jako private, więc nie można go zmienić bezpośrednio spoza klasy. Dostęp odbywa się przez metody wplac() i pobierzSaldo().
Związek z kwalifikatorami dostępu
Kwalifikatory private, protected i public służą właśnie do określania, kto może korzystać z pól i metod klasy. Dlatego w pytaniu egzaminacyjnym poprawną odpowiedzią jest hermetyzacja, a nie polimorfizm, przeciążanie ani rekurencja.