クラスFooを呼び出すBarというメインクラスがあり、ディープコンストラクターを正しく配置したと思います
ディープコピーコンストラクターの目的は、あるオブジェクトの内容を別のオブジェクトにコピーすることであり、コピーされたオブジェクトを変更しても、元のオブジェクトの内容は変更されません。
私のコードはそれを行いますが、元のオブジェクト変数を設定したときに、コピーするオブジェクトにその設定変数が含まれておらず、デフォルトのコンストラクター変数のみが含まれている理由がわかりません。
public class Bar
{
public static void main(String[] args)
{
Foo object = new Foo();
object.setName1("qwertyuiop");
//the below line of code should copy object to object2?
Foo object2 = new Foo(object);
System.out.println(object.getName1());
//shouldn't the below line of code should output qwertyuiop since object2 is a copy of object? Why is it outputting the default constructor value Hello World?
System.out.println(object2.getName1());
//changes object2's name1 var to test if it changed object's var. it didn't, so my deep copy constructor is working
object2.setName1("TROLL");
System.out.println(object2.getName1());
System.out.println(object.getName1());
}
}
public class Foo
{
//instance variable(s)
private String name1;
public Foo()
{
System.out.println("Default Constructor called");
name1= "Hello World";
}
//deep copy constructor
public Foo(Foo deepCopyObject)
{
name1 = deepCopyObject.name1;
}
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
}