Rozdział 3. Modifiers

The Access Modifiers
  1. Klasy nie wewnętrzne mogą być tylko public.
  2. Metody public mogą być przeciążone przez klasy pochodne.
  3. Klasy pochodne nie mają dostępu do prywatnych zmiennych, metod, czy klas wewnętrznych.
  4. Dostęp domyślny - każdy obiekt znajdujący się w tym samym pakiecie ma dostęp do danego atrybutu.
  5. Tylko zmienne i metody mogą być protected. Do obiektów protected mają dostęp wszystkie obiekty z tego samego pakietu, jak i klasy, które dziedziczą po danym obiekcie, a są w innym pakiecie.
  6. Obiekty o niższej dostępności mogą być przeciążane przez klasy pochodne, jeśli ten nadają taką samą dostępność lub większą. Dla przykładu, metoda private void xxx(), może zostać przeciążona w klasie pochodnej na public void xxx().
Final powoduje, że metod nie można przeciążać, a referencja (nie obiekt) musi pozostać stała. W szczególności finalny typ prosty nie może zostać zmieniony. Finalna metoda musi posiadać ciało.

Klasa musi zostać zadeklarowana jako abstrakcyjna gdy posiada jedną lub więcej abstrakcyjnych metod, klasa dziedzicz jakąś abstrakcyjną metodą z innej klasy, dla której nie udostępnia implementacji; lub klasa implementuje interfejs, lecznie nie zawiera implementacji dla każdej z jego metod. Klasa nie może być abstrakcyjna i finalna, ale abstrakcyjna klasa może posiadać finalne metody. Metoda nie może być jednocześnie finalna i abstrakcyjna.

W metodach static nie można uzywać this. Statycznych metod nie można przeciążyć jako nonstatic. Kod wewnątrz static {} wywoływany jest dokładnie raz kiedy klasa jest ładowana. Zmienne public, protected i default mogą być static import do klas w obrębie tego samego pakietu. Do innych pakietów, mogą być tylko pubic.

Native może dotyczyc tylko metody.

Volatile - zmienna może być dostępna asynchronicznie, istotne w środowiskach wieloprocesorowych.

TODO: Nauczyć tabelki na stronie 124.

Brak komentarzy:

Prześlij komentarz