private w OOP

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

Czym jest private w OOP?

private to modyfikator dostępu stosowany w programowaniu obiektowym. Oznacza, że dane pole lub metoda są dostępne tylko wewnątrz klasy, w której zostały zadeklarowane.

Nie można odwołać się do elementu private bezpośrednio z zewnątrz obiektu ani z klasy potomnej. Jest to mechanizm służący do enkapsulacji, czyli ukrywania szczegółów działania klasy.

Przykład w PHP

class Uzytkownik {
    private string $haslo;

    public function ustawHaslo(string $noweHaslo): void {
        $this->haslo = $noweHaslo;
    }

    private function zaszyfrujHaslo(): string {
        return md5($this->haslo);
    }
}

$u = new Uzytkownik();
$u->ustawHaslo("tajne");
// $u->haslo; // błąd - pole private
// $u->zaszyfrujHaslo(); // błąd - metoda private

Po co stosuje się private?

  • chroni dane przed przypadkową zmianą z zewnątrz,
  • pozwala kontrolować dostęp przez metody publiczne,
  • ułatwia utrzymanie kodu,
  • wspiera zasadę enkapsulacji.

Porównanie z innymi pojęciami

  • public - dostęp z każdego miejsca,
  • private - dostęp tylko w tej samej klasie,
  • protected - dostęp w tej samej klasie i klasach dziedziczących,
  • static - element należy do klasy, a nie do konkretnego obiektu,
  • const - stała wartość, której nie można zmienić.

W pytaniach egzaminacyjnych, jeśli pojawia się opis: „dostęp tylko z poziomu klasy, w której zadeklarowano pole lub metodę”, poprawną odpowiedzią jest private.