Junior — Middle
70
Какие свойства характеризуют неизменяемый объект?
Answer from AI
sobes.tech AI
Неизменяемый объект (immutable object) обладает следующими свойствами:
- Состояние не меняется после создания. Все поля объекта инициализируются при создании и не изменяются.
- Отсутствие сеттеров или методов, изменяющих состояние. Все методы либо возвращают новые объекты с изменённым состоянием, либо не изменяют текущий.
- Безопасность в многопоточном окружении. Поскольку состояние не меняется, объекты можно безопасно использовать из разных потоков без синхронизации.
В Java для создания неизменяемого объекта обычно:
- Все поля объявляют как
final. - Класс объявляют как
finalили не предоставляют методы для наследования. - Поля инициализируют через конструктор.
- Не предоставляют сеттеры.
Пример:
public final class ImmutablePoint {
private final int x;
private final int y;
public ImmutablePoint(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() { return x; }
public int getY() { return y; }
}