Modyfikatory dostępu określają, z jakiego miejsca w programie można korzystać z klasy, pola, metody lub konstruktora. Są podstawowym elementem enkapsulacji, czyli ukrywania szczegółów implementacji obiektu.
Najczęstsze modyfikatory
W językach obiektowych, takich jak C#, Java czy C++, najczęściej spotyka się:
public- element dostępny z każdego miejsca programu,private- element dostępny tylko wewnątrz tej samej klasy,protected- element dostępny w tej samej klasie oraz w klasach pochodnych, czyli dziedziczących,- dostęp pakietowy/wewnętrzny - zależny od języka, np.
internalw C# albo brak modyfikatora w Javie.
Modyfikator protected
Metoda oznaczona jako protected nie jest zwykle dostępna bezpośrednio z programu głównego przez obiekt klasy. Może być jednak używana wewnątrz klasy, w której została zdefiniowana, oraz w klasach dziedziczących.
Przykład w stylu C#:
class Kalkulator
{
protected void Dodaj()
{
// kod metody
}
}
class KalkulatorRozszerzony : Kalkulator
{
public void Wykonaj()
{
Dodaj(); // poprawne, bo klasa dziedziczy po Kalkulator
}
}
Natomiast wywołanie:
Kalkulator k = new Kalkulator();
k.Dodaj(); // błąd - metoda protected nie jest publiczna
Po co stosuje się modyfikatory dostępu?
Modyfikatory dostępu pozwalają kontrolować, które elementy klasy są częścią publicznego interfejsu, a które powinny pozostać ukryte. Dzięki temu kod jest bezpieczniejszy, łatwiejszy w utrzymaniu i mniej podatny na przypadkowe błędy.
W pytaniach egzaminacyjnych warto zapamiętać: protected oznacza dostęp w tej samej klasie oraz w klasach dziedziczących.