Junior
Ką reiškia raktinis žodis 'final' Java programavimo kalboje?
sobes.tech AI
Atsakymas iš AI
Java final raktas žodis naudojamas nurodyti, kad kintamasis, metodas ar klasė negali būti pakeista:
-
finalkintamasis:finaldeklaruotas kintamasis gali būti priskirtas tik vieną kartą. Po priskyrimo jis negali būti pakeistas:- Primitivių tipų atveju
finalkintamojo reikšmė yra konstanta: - Nuorodų tipų atveju
finalkintamasis reiškia, kad nuoroda į objektą negali būti pakeista, tačiau objekto būklė (jo laukai) gali būti keičiama (jei tik laukai nėrafinal):
final int MAX_VALUE = 100; // final primitivas final List<String> names = new ArrayList<>(); // final nuoroda names.add("Alice"); // OK // names = new ArrayList<>(); // Kompiliatoriaus klaida - nuoroda negali būti perrašyta -
finalmetodas:- Metodas, deklaruotas kaip
final, negali būti perrašytas (overridden) pogrupiuose: - Tai naudojama siekiant išvengti nenorimų elgsenos pakeitimų paveldėjimo hierarchijoje:
class Parent { final void display() { System.out.println("This is a final method."); } } class Child extends Parent { // @Override void display() { } // Kompiliatoriaus klaida - `final` metodas negali būti perrašytas } - Metodas, deklaruotas kaip
-
finalklasė:- Klasė, deklaruota kaip
final, negali turėti pogrupių (negali būti paveldima): - Tai naudojama užtikrinti, kad klasė nėra keičiama ir neleidžiama išplėsti jos funkcionalumo:
final class ImmutableClass { private final int value; public ImmutableClass(int value) { this.value = value; } } // class TryingToExtend extends ImmutableClass { } // Kompiliatoriaus klaida - `final` klasė negali būti paveldima - Klasė, deklaruota kaip