OCA Struktura klasy

Struktura klasy

Pakiety

Nie trzeba importować pakietu java.lang oraz klas z aktualnego pakietu. Wildcard import dotyczy tylko konkretnych klas nie paczek. Dozwolony jest tylko jeden symbol wildcard na import – musi być na końcu. Nie można importować metod instancyjnych. Import konkretny ma priorytet nad wildcard i nie powoduje błędu kompilacji.

Nie można zaimportować domyślnego pakietu.

Rozpoczęcie nazwy pakietu od java lub javax skutkuje błędem SecurityException w czasie uruchomienia.


Zawartość klasy

Kolejność sekcji w klasie: pakiet, import, class (wymagane), pola i metody.

Zagnieżdżone komentarze blokowe powodują błąd kompilacji (konkretnie ich zamknięcie).

Klasa może być pakietowa, kilka klas może być zadeklarowanych w jednym pliku z czego maksymalnie jedna może być publiczna. Nazwa klasy publicznej musi pokrywać się z nazwą pliku.

Kolejność klas w jednym pliku nie ma znaczenia (nawet jeśli się nawzajem rozszerzają).

Kolejność inicjalizacji

  • inicjalizacja klasy bazowej
  • statyczne zmienne i bloki w kolejności deklaracji
  • instancyjne zmienne i bloki w kolejności deklaracji
  • konstruktor

Można uruchomić metodę main z klasy abstrakcyjnej.

Main musi zwracać void w innym przypadku w czasie uruchomienia będzie rzucony error.

Literał liczbowy to int, inne podstawy dla literałów to 0 – ósemkowy, 0x lub 0X – szesnastkowy, 0b lub 0B – binarny. W liczbach można dodawać _ ale nie na początku, końcu liczby ani przy kropce. Jeśli literał mieści się w zakresie jest niejawnie rzutowany na niższy np. byte.

Literał z częścią ułamkową jest typu double.

W jednej instrukcji można inicjalizować kilka zmiennych tego samego typu (typ może się pojawić tylko raz).

Wszystkie nazwy w javie muszą zaczynać się od litery lub $ lub _. W javie 9 nie można wykorzystywać samego _ jako nazwy. Nie można wykorzystywać słów kluczowych. Można wykorzystać jako nazwę nazwę wrappera (np .Integer Integer = new Integer(1);) ale nie typu prostego. Przy odwołaniach najpierw jest brana pod uwagę zmienna o nazwie jak typ a nie metody statyczne typu.

Zmienne lokalne przed odwołaniem muszą być zainicjalizowane (inaczej występuje błąd kompilacji), zmienne instancyjne i statyczne mają domyślne wartości. Jeśli zmienna lokalna jest inicjalizowana w sekcji ifa wtedy musi być też inicjalizowana w else (nie może być alternatywny if który jest negacją pierwszego warunku. Kompilator wie, że zmienna lokalna zawsze będzie zainicjalizowania w switchu bez breaków.

Źródła:
„OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808” Jeanne Boyarsky, Scott Selikoff
„JA+ V8 for Oracle Certified Associate – Java SE8 Programmer I” http://enthuware.com