Modyfikatory dostępu

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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. internal w 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.