Javaのオブジェクトに値を代入する方法は何ですか?
Javaのオブジェクトに値を割り当てる方法は2つあります。
- 直接代入:1つのオブジェクトを別のオブジェクトに代入するには、等号(=)を使用します。これにより、元のオブジェクトの参照がターゲットオブジェクトにコピーされ、ターゲットオブジェクトと元のオブジェクトが同じメモリアドレスを指すことになります。つまり、ターゲットオブジェクトの変更は元のオブジェクトにも影響を与えることを意味します。
For example:
たとえば、
Object obj1 = new Object();
Object obj2 = obj1; // 将obj1的引用赋值给obj2
- 新しいオブジェクトを作成するために、コンストラクタまたはファクトリーメソッドを使用します。対象オブジェクトのコンストラクタまたはファクトリーメソッドを呼び出し、ソースオブジェクトのプロパティ値を使用して新しいオブジェクトを作成します。これにより、新しいオブジェクトが生成され、ソースオブジェクトのプロパティ値が新しいオブジェクトにコピーされ、新しいオブジェクトとソースオブジェクトが異なるメモリアドレスを指すようになります。
例えば、
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
// 省略其他代码
}
MyClass obj1 = new MyClass(10);
MyClass obj2 = new MyClass(obj1.getValue()); // 使用obj1的属性值创建一个新的MyClass对象
これらの2つの代入方法は、異なる状況で異なる目的に使用されます。直接代入はオブジェクトへの参照のコピーに適しており、一方、コンストラクタやファクトリーメソッドを使用すると、新しいオブジェクトが作成され、そのプロパティ値が初期化されます。