Stałe (final) – Wyobraź sobie, że potrzebujesz stworzyć zmienną, której wartość będzie niezmienna🤪 – raz przypisana i już zawsze taka sama. Przykładowo – chcesz mieć pewność, że maksymalna wysokość to zawsze będą 2 metry i nikt przez pomyłkę nie ustawi jej na 3 metry 📐. To właśnie umożliwiają stałe.
W tym materiale chcę Ci powiedzieć – czym są stałe (final) i co je różni od zmiennych.
Java – Stałe – wprowadzenie
Z tego materiału dowiesz się:
- Czym jest stała?
- Czym różni się stała od zmiennej?
- Czym są metody finalne?
- Czym są klasy finalne?
Czym stała różni się od zmiennej?
Stałe, to w pewnym sensie przeciwieństwo zmiennych. W Javie stałe deklaruje się bardzo podobnie do zmiennych, z tą różnicą, że przed deklarowanym typem trzeba dodać jeszcze słowo kluczowe: final.
Zadeklarowanej w ten sposób stałej można przypisać wartość tylko raz. Późniejsze próby jej modyfikacji zakończą się błędem kompilacji.
final double CONSTANT_PI = 3.14; final int OTHER_CONSTANT; OTHER_CONSTANT = 1;
Java – Stałe referencyjne
Jeśli mamy stałą referencyjną, to nie możemy jej ponownie przypisać.
⚠ Nie oznacza to jednak, że obiekt, do którego się odwołuje, jest niezmienny. Można dowolnie zmieniać właściwości tego obiektu. ⚠
final User user = new User(); user.setAge(35) // kompiluje się prawidłowo user = new User(); // błąd kompilacji
Java – Stałe – argumenty
Słowo kluczowe final można również zastosować przed argumentami metody. Końcowy argument nie może być zmieniony wewnątrz metody.
public void printAge(final int age) {
age = 1;// błąd kompilacji
System.out.println(age);
}
Java – Stałe – Konwencja nazewnicza
Nie ma takiego wymogu składniowego, jednak według konwencji nazewnictwa w Javie stałe powinno nazywać się wielkimi literami i cyframi, a kolejne słowa powinny być oddzielone znakiem podkreślenia.
long maxValue = Long.MAX_VALUE; long minValue = Long.MIN_VALUE;
W Javie stałe są wykorzystywane dość powszechnie, np. w klasach opakowujących.
Dobrym zwyczajem jest przechowywanie różnego rodzaju niezmiennych wartości właśnie jako stałych, dzięki czemu unikniemy ich przypadkowej modyfikacji oraz, jeżeli zaszłaby potrzeba zmiany tej wartości w całym systemie, możemy to zrobić modyfikując kod tylko w jednym miejscu.
Java – Stałe – Metody
Metody w Javie również mogą być „stałe”, chociaż w tym przypadku pasuje bardziej określenie finalne. Metody oznaczone jako finalne nie mogą być nadpisane. Wiele metod finalnych możemy również znaleźć w bibliotekach podstawowych Javy np. getClass() z klasy Object.java
public class MathClass {
public final long add(int a, int b) {
return a + b;
}
}
Java – Stałe – Klasy
Klasy finalne nie mogą być rozszerzane. Przykładem takiej klasy jest np. klasa String.
⚠ Słowo kluczowe final w deklaracji klasy nie oznacza, że obiekty tej klasy są niezmienne.⚠
public final class Box {
private int high;
//gettery i settery
}
public class Shape extends Box{ // błąd kompilacji
}
Java – Zmienne
W ramach tego materiału zajmiemy się przede wszystkim stałymi – natomiast materiał dotyczący zmiennych znajdziesz poniżej.
→ ZOBACZ 👉: Zmienne i typy danych
Java – Stałe – podsumowanie
W ramach tego materiału dowiedzieliśmy się, czym są stałe. Bliżej zapoznaliśmy się z finalnymi zmiennymi, metodami i klasami. Jeżeli chcesz kontynuować swoją przygodę z Javą i poznać inne struktury, które oferuję ten język programowania – to zapraszam do kolejnego tematu z serii o Javie. Przedstawię Ci temat klas osłonowych – pomostu pomiędzy typami prostymi a obiektowymi.
→ ZOBACZ 👉: Klasy osłonowe/ opakowujące
Kierunek Java
W serii o Javie zapoznajesz się z podstawowymi tematami o Javie. Jeżeli chcesz bardziej kompleksowo zagłębić się w temat Javy, poczytać, posłuchać o Javie, to zachęcam Cię do zapoznania się z moim kursem „Kierunek Java”:
→ ZOBACZ 👉: Kierunek Java


