フィル:
私は、変数の代入のJavaの基礎について初心者の質問があります。
私のコード例では、私は3箱(オブジェクト)を持っています。次のように私はボックスを割り当てます。
Box box1 = new Box("Furniture", 1);
Box box2 = new Box("Games", 2);
Box box3 = new Box("Cloths", 3);
box1 = box2;
box2 = box3;
System.out.println(box1.toString());
System.out.println(box2.toString());
今、私はBOX1もBOX3を指していることを期待します。しかし、それはまだBOX2を指していること、が判明し、本家の私はまた、BOX3へBOX2の参照を変更しました。どうしてこんなことに?
ゴータム:
これはあなたの初期状態です。
+-----------------+ +----------------+
| box1 ( ref ) +------------>| box1 ( obj ) |
+-----------------+ +----------------+
+-----------------+ +----------------+
| box2 ( ref ) +------------>| box2 ( obj ) |
+-----------------+ +----------------+
+------------------+ +----------------+
| box3 ( ref ) +----------->| box3 ( obj ) |
+------------------+ +----------------+
これは後に何が起こるかですbox1 = box2
:
+-----------------+ +----------------+
| box1 ( ref ) +----+ | box1 ( obj ) |
+-----------------+ | +----------------+
|
+-----------------+ +------> +----------------+
| box2 ( ref ) +------------>| box2 ( obj ) |
+-----------------+ +----------------+
+------------------+ +----------------+
| box3 ( ref ) +----------->| box3 ( obj ) |
+------------------+ +----------------+
これは後に何が起こるかであります box2 = box3
+-----------------+ +----------------+
| box1 ( ref ) +----+ | box1 ( obj ) |
+-----------------+ | +----------------+
|
+-----------------+ +------> +----------------+
| box2 ( ref ) +----+ | box2 ( obj ) |
+-----------------+ | +----------------+
|
+------------------+ +------->+----------------+
| box3 ( ref ) +----------->| box3 ( obj ) |
+------------------+ +----------------+
今、あなたは、出力がそのようである理由を把握することができるはずです。:)