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();
我無法回答第二個問題,因為您沒有解釋該方法的作用。
添加回答
舉報