我有一个LINE类,它有两个POINT类型的属性(它是一个对象)。
public class LINE {
private Point p1,p2;
}
如果我发表此声明,是否会引起别名?
public void setP1(Point p1)
{
this.p1=p1;
}
或者我是否必须创建一个新对象,如:
public void setP1(Point p1)
{
this.p1=new Object(p1);
}
感谢advnace。
答案 0 :(得分:0)
是的,它会导致别名。
我的猜测是,您尝试创建对象的副本,而不是想要实例化新的Point
。
话虽如此,如果你实际上不需要复制该对象,那么第一个就会做
所以,如果你称之为
Line line = new Line()
line.setP1(new Point(/*params*/))
这完全没问题。