Hermetyzacja (enkapsulacja)

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.