Junior
Какво означава ключовата дума 'final' в езика за програмиране Java?
sobes.tech AI
Отговор от AI
Ключовата дума final в Java се използва, за да се посочи, че променлива, метод или клас не могат да бъдат променяни.
-
Променлива
final:- Променлива, обявена като
final, може да бъде присвоена само веднъж. След присвояване, тя не може да бъде променена. - За примитивните типове данни, стойността на
finalпроменливата е константа. - За референтните типове,
finalозначава, че референцията към обекта не може да бъде променена, но състоянието на обекта (неговите полета) може да бъде променяно (ако полетата на обекта не саfinal).
final int MAX_VALUE = 100; // финална примитивна променлива final List<String> names = new ArrayList<>(); // финална референтна променлива names.add("Alice"); // ОК // names = new ArrayList<>(); // Грешка при компилация - не може да се преназначи референцията - Променлива, обявена като
-
finalметод:- Метод, обявен като
final, не може да бъде презаписан в подкласове. - Това се използва за предотвратяване на нежелани промени в поведението в йерархията на наследяване.
class Parent { final void display() { System.out.println("Това е финален метод."); } } class Child extends Parent { // @Override void display() { } // Грешка при компилация - не може да се презапише финален метод } - Метод, обявен като
-
finalклас:- Клас, обявен като
final, не може да има подкласове (не може да бъде наследен). - Това се използва за гарантиране на неизменяемостта на класа и предотвратяване на разширяване на неговата функционалност.
final class ImmutableClass { private final int value; public ImmutableClass(int value) { this.value = value; } public int getValue() { return value; } } // class TryingToExtend extends ImmutableClass { } // Грешка при компилация - не може да наследява от финален клас - Клас, обявен като