Junior — Middle
Оё мумкин аст, ки аъзои синфро ҳамчун беэҳтиёт эълон кард пас аз инициализацияи онҳо?
sobes.tech AI
Ҷавоб аз AI
Бале, дар Java метавон аъзои синфро ҳамчун тағйирнопазир пас аз инициализация бо истифода аз калидвожа final эълон кард. Ин маъно дорад, ки пас аз таъин кардани арзиш ба тағйирёбанда, онро дигар наметавон тағйир дод.
Масалан:
public class Example {
private final int id; // майдони тағйирнопазир
public Example(int id) {
this.id = id; // инициализация дар конструктор
}
public int getId() {
return id;
}
}
Ин ҷо, майдони id метавонад танҳо як маротиба таъин шавад — ҳангоми сохтани объект. Пас аз он, кӯшиши тағйир додани id хатогии компиляторро ба вуҷуд меорад.
Барои объектҳои тағйирнопазир, одатан ҳамаи майдонҳоро final мекунанд ва setters намедиҳанд, ки ин кӯмак мекунад ба таъмини бехатарӣ ва пешгӯии рафтори синф.