Modyfikatory dostępu
Modyfikatory dostępu w języku Java (public, protected, package-private, private)4 Modyfikatory dostępu:
public: dostępny z każdego miejscaprotected: dostępne dla klas z tego samego pakietu i klas rozszerzającychdefault: dostępne dla klas z tego samego pakietu (= package-private)private: dostępne tylko dla samej klasy
Modyfikatory dla klas:
public: publiczna- brak (package-private): modyfikator domyślny
Klasa nie mogła by być private, ponieważ nie było by do niej dostępu a jej funkcjonalność mogła by wykonywać tylko ona sama.
Modyfikatory dla pól i metod:

*no modifier = package-private
public
public jest najszerszym poziomem widoczności – klasy, pola i metody oznaczone w ten sposób są widoczne dla wszystkich innych klas.
protected
Drugi w kolejności – protected – jest dostępny dla klasy zdefiniowanej w tej samej paczce oraz w klasach dziedziczących (extends) po klasie, która zawiera pola czy metody oznaczone jako
protected.
- dostępność w tym samym pakiecie
- dostępność w innym pakiecie poprzez
super, pod warunkiem, że klasa rozszerza główną klasę ze zmienną/metodą

no modifier = package-private
Package, będący domyślnym poziomem widoczności nieposiadającym własnego modyfikatora, ogranicza widoczność do klas z tej samej paczki.
- dostępność tylko w tym samym pakiecie
- nie ma znaczenia czy klasa rozszerza główną klasę ze zmienną/metodą
private
Finalnie mamy private – czyli prywatne. Jak sama nazwa wskazuje elementy z dostępem na poziomie prywatnym są widoczne tylko dla struktur zdefiniowanych w tej samej klasie.