Я узнаю о неизменяемых объектов. Я должен сделать следующий класс неизменным. Я сделал это правильно?Создание класса Неизменяемый
import java.awt.Point;
public class MyImmutablePoint {
Point point;
public MyImmutablePoint(Point point) {
super();
this.point = point;
}
public MyImmutablePoint() {
this (new Point (0,0));
}
public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point
}
}
"Неизменное" Класс:
public final class MyImmutablePoint {
private final Point point;
public MyImmutablePoint(Point point) {
this.point = point;
}
public MyImmutablePoint() {
this (new Point (0,0));
}
public Point getPoint() {
return point;
}
}
Iam не уверен в toString
методе, хотя. и, возможно, возвращение объекта, например Точка, может быть изменена так же, как массив, но не уверен
** Отформатируйте свой код **. Это неразборчиво. –
Вопрос: спросите себя: «* возможно ли изменить внутреннее состояние моего объекта после его создания? *". Если ответ * да *, то ваш объект не является неизменным. Помните, что внутреннее состояние вашего объекта является продуктом внутренних состояний всех ваших полей-членов, поэтому, если * any * ваших полей-членов изменен, ваш объект должен обращаться с доступом к этому полю очень осторожно, иначе ваш объект будет изменяться , – JonK
@OP - если ответ решил вашу проблему, рассмотрите [его принятие] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). Это сигнализирует остальной части сообщества, что вопрос был решен. –