やったこと
オブジェクト参照・コピーの違い
解いた問題を再度、解き直し
新しい問題を一つ解答途中
参照
参照とは、オブジェクトが存在している場所 (メモリアドレス) を指す。
オブジェクトを作成すると、変数には、オブジェクトが入るのではなく、
オブジェクトが格納されているメモリへアクセスするアドレスが格納される。
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
Person person1 = new Person("Alice");
Person person2 = person1; // person2はperson1を参照している
person2.name = "Bob";
System.out.println(person1.name); // 出力は "Bob" となる
コピー
コピーとは、既存のオブジェクトを新しいオブジェクトとして複製することである。
そのため、格納されている場所も異なるため、アクセスするためのメモリアドレスも異なる
Person originalPerson = new Person("Alice");
Person copiedPerson = new Person(originalPerson.name); // オブジェクトのコピーを作成
copiedPerson.name = "Bob";
System.out.println(originalPerson.name); // 出力は "Alice" となる