Junior
Чӣ маъно дорад калимаи калидии 'final' дар забони барномасозии Java?
sobes.tech AI
Ҷавоб аз AI
Калидвожа final дар Java истифода мешавад барои нишон додани он, ки тағйирёбанда, усул ё синф наметавонанд тағйир ёбанд.
-
Таърифи тағйирёбандаи
final:- Тағирёбандаи, ки ҳамчун
finalэълон шудааст, метавонад танҳо як маротиба таъин карда шавад. Пас аз таъин, он дигар тағйир дода намешавад. - Барои намудҳои додаҳои асосӣ, арзиши тағйирёбандаи
finalяк дона аст. - Барои намудҳои додаҳои ишоракунанда,
finalмаънои онро дорад, ки ишора ба объект тағйирнопазир аст, аммо ҳолати объект (майдонҳояш) метавонад тағйир ёбад (агар майдонҳои объект ҳамfinalнабошанд).
final int MAX_VALUE = 100; // тағйирёбандаи асосӣ `final` final List<String> names = new ArrayList<>(); // тағйирёбандаи ишоракунанда `final` names.add("Alice"); // ОК // names = new ArrayList<>(); // Хатои компилятсия - ишора тағйир дода намешавад - Тағирёбандаи, ки ҳамчун
-
Усули
final:- Усули, ки ҳамчун
finalэълон шудааст, дар синфҳои зернаметавонад навишт нашуда бошад. - Ин барои пешгирии тағйироти номуносиб дар рафтор дар зериҳуҷра истифода мешавад.
class Parent { final void display() { System.out.println("Ин усули `final` аст."); } } class Child extends Parent { // @Override void display() { } // Хатои компилятсия - навиштани усули `final` имконнопазир аст } - Усули, ки ҳамчун
-
Синфи
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 { } // Хатои компилятсия - наметавонад аз синфи `final` мерос гирад - Синфе, ки ҳамчун