我正在学习不可变的对象。我必须让下面的类不可变。我做对了吗?让一个类不可变
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;
}
}
荫不能确定toString
方法虽然。 也许返回像Point这样的对象可以像数组一样修改但不知道
**格式化您的代码**。这是难以辨认的。 –
问自己这个问题是:“*我可以在创建对象后改变对象的内部状态吗?*”。如果答案是*是*,那么你的对象是不可改变的。请记住,对象的内部状态是所有成员字段的内部状态的产物,因此如果任何*成员字段都是可变的,则对象需要非常小心地处理对该字段的访问,否则您的对象将是可变的。 – JonK
@OP - 如果答案解决了您的问题,请考虑[接受](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。这向社区其他人表明问题已经解决。 –