Spis treści
- Hermetyzacja klas
- Kwantyfikatory dostępu w klasie java
- Metody statyczne
Hermetyzacja klas | Java
Przypomnijmy przykład klasy z poprzedniego wpisu o Java.

Co oznacza public przy nazwie klasy ? Już o tym pisaliśmy. To kwantyfikator dostępu mówiący, że ta klasa jest widoczna w całym projekcie Java. Dlaczego więc pola składowe również nie są public ? Czemu nie pozwalamy na ich bezpośrednia edycje ?
To właśnie gwarantuje nam podstawową hermetyzację klas. To może być bardzo uciążliwe, gdy wiele klas jest w stanie w wielu miejscach zmieniać nasze pola składowe. Najczęściej w java, pola składowe są prywatne, a możliwość pobrania tego pola jest przez metodę zwaną getterem w Java.

Te metody zwane getterami pozwalają nam pobrać wartości obiektów. Co warto zauważać, nasza klasa nie ma żadnej settera, która umożliwi nam nadanie wartości naszym polom składowym. Te wartości można nadać jedynie w konstruktorze. W związku z tym pola naszej klasy BmwX1 można nadać tylko i wyłącznie 1 raz podczas tworzenia obiektu, a potem można tylko pobrać zawartość pół. To jest właśnie dobra hermetyzacja klasa wymagana w OOP – Object oriented programming. Gdy mamy duże projekty i wiele osób może potrzebować naszych klas, niech wszyscy używają getterów i nie wpływają na stan naszego obiektu. W ten sposób zapewniamy obiektowi większe bezpieczeństwo nad niechcianymi, niepożądanymi zmianami.
Kwantyfikatory dostępu w klasie java
Jak już sobie wspomnieliśmy, mamy 4 główne kwantyfikatory dostępu.
- public
- protected
- private
- (package) domyślny, aktywny gdy nie wpiszemy żadnego
Klasa nie może być protected. Ten typ jest dostępny dla pół i metod, ponieważ jest związany z dziedziczeniem pól i metod.
Metoda i pole może mieć wszystkie dostępne kwantyfikatory dostępu.
Zaleca się, aby metody które wykonują mniejsze zadania stricte dla klasy były private. Natomiast metody publiczne, wykorzystywały metody prywatne, pomocnicze. Metody publiczne będą widoczne w całym projekcie, więc trzeba je pisać rozważnie i koniecznie muszą posiadać odpowiednie testy np. w junit, o czym później.
Kwantyfikator protected to widoczność danej metody lub pola w zakresie hierarchii dziedziczenia. O tym będzie trochę wpisów później.
Metody statyczne
Nasze metody gettery są metodami dynamicznymi. To znaczy, że każda nowa instancja obiektu BmwX1, ma swoje własne metody. Istnieje też słowo kluczowe static w java, stosowanie w metodach, polach i klasach.
Gdy stosujemy np. nad metodą static, to znaczy, że dla wszystkich instancji obiektów będzie jedna i ta sama, statyczna metoda, którą zdefiniujemy.
Metody statyczne mogą wykorzystywać pola statyczne, nie mogę wykorzystywać dynamicznych zmiennych klasy.
Klasa też może być statyczna. Wtedy wówczas nie tworzymy instancji obiektu, że skorzystać z klasy. Przykładem metody statycznej jest np.
LocalDate.now(). Czas aktualny zawsze będzie liczony tak samo, metoda statyczna wówczas tutaj ma jak najbardziej zastosowanie.
W kolejnych wpisach będziemy dalej omawiać Klasy i dalsza cześć Java.
Zachęcamy do zakupu całego kurs java
Pozdrawiamy,
Zespół Great
Pomocne linki:
Calculations