0
嗨我试图设计一种测试方式,如果复制构造函数是深层或浅层副本。我已经提出了以下内容。它会正常工作吗?浅拷贝的输出是浅这是测试浅层还是深层拷贝的适当方法?
Test1
深输出
Test1
Test1
输出。
在我的脑海中,这是有道理的,因为它在深拷贝中没有被复制到第二个实例。
public class DeepAndShallowCopyConstructor {
public String Stringtest ="";
public DeepAndShallowCopyConstructor(){
}
//Deep
public DeepAndShallowCopyConstructor(DeepAndShallowCopyConstructor other){
DeepAndShallowCopyConstructor test = new DeepAndShallowCopyConstructor();
this.Stringtest = test.Stringtest;
}
// //Shallow
// public Testing(Testing other){
// this.Stringtest = other.Stringtest;
// }
public static void main(String[] args) {
// TODO Auto-generated method stub
DeepAndShallowCopyConstructor test1 = new DeepAndShallowCopyConstructor();
test1.setStringtest("test1");
System.out.println(test1.getStringtest());
DeepAndShallowCopyConstructor test2 = new DeepAndShallowCopyConstructor(test1);
System.out.println(test2.getStringtest());
}
public String getStringtest() {
return Stringtest;
}
public void setStringtest(String stringtest) {
Stringtest = stringtest;
}
}
我知道他们说在Java中名字应该很长,但我认为你会严重地过度使用它,以至于代码不可读。另外,'Stringtest'绝对不应该有大写字母S,它不是一个类型名称。另外..我已经读了几次,仍然没有理解你的目标。 – MightyPork