3 回答
TA贡献1824条经验 获得超5个赞
您将向您的类和一些构造函数添加一个复制方法。
public class Element {
int x;
int y;
public Element(){
}
public Element(int x, int y) {
}
public Element copy() {
return new Element(x, y);
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
}
Element element = new Element(0, 0);
Element secondElement = element.copy();
assert element != secondElement;
TA贡献1909条经验 获得超7个赞
在您的代码中,element1 和 firstPoint 是同一个对象,这是您想要的吗?
另外,当你设置element2和element3为firstPoint时,之前已经修改过了。这可能是一种不需要的副作用。
element1,2,3,4 必须是独立的对象:
Element element1 = new Element()
Element element2 = new Element()
Element element3 = new Element()
Element element4 = new Element()
然而,Jason 的解决方案更好,因为这就是 Java 的处理方式。
TA贡献1828条经验 获得超4个赞
关于“复制”部分,您可以在元素类中创建复制构造函数或方法。
构造函数:
public Element(Element element){
this.x = element.x
this.y = element.y
}
// ToDo handle null argument if needed if(element==null)return;
// values will be set to 0.
例子:
Element element1 = new Element();
Element element2 = new Element(element1);
方法:
public Element clone(){
Element newCloneElement = new Element();
newCloneElement.x = x;
newCloneElement.y = y;
return newCloneElement;
}
// The above method can implemented as static with an Element argument
// and the values will be copied from the argument.
例子:
Element element1 = new Element();
Element element2 = element1.clone();
我无法回答第二个问题,因为您没有解释该方法的作用。
添加回答
举报