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.