Dea All,
我有以下内容:
class test {
int x = 6;
int y = 7;
private int getX() {
return x;
}
private int getY() {
return y;
}
public test copy() {
test myTest = new test();
myTest.x = getX();
myTest.y = getY();
return myTest;
}
}
然而,当我执行时:
test a = new test();
test b = a.copy();
b.x = 17;
System.out.println(a.x);
结果仍然是17.但是,深度复制不应该阻止这个吗?
有谁可以帮助我?
答案 0 :(得分:3)
首先,您忽略了b.copy()
的返回值:
test b = new test();
b.copy();
其次,我已经测试了您的代码,并按照您在问题中的说法打印6
而不是17
。
编辑我注意到您已修复了编辑中的第一个问题。但是,代码仍然没有你所说的那样。
答案 1 :(得分:0)
结果应该是6而不是17。