Junior — Middle
Қандай принсиплар Java-да класс яратишда уни ўзгартирмаслик учун қўлланиши керак?
sobes.tech AI
Ҷавоб аз AI
За да направите клас в Java неизменяем (immutable), трябва да спазвате няколко принципа:
- Декларирайте класа като
final— за да не може да се създаде подклас, който променя поведението. - Направете всички полета
privateиfinal— за да не могат да бъдат променяни след инициализация. - Не предоставяйте сетъри (методи за промяна на полетата).
- Инициализирайте всички полета чрез конструктора.
- Ако полетата са референции към променяеми обекти (например масиви, колекции), създавайте им копия при присвояване и при връщане от гетърите, за да не влияят външните промени върху вътрешното състояние.
Пример:
public final class ImmutablePerson {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Такъв клас след създаването на обекта не позволява да се промени състоянието му, което е полезно за безопасност на нишките и предсказуемост на поведението.