public class Main { public static void main(String[] args) { // 新しいSampleオブジェクトを作成し、s1変数に代入 Sample s1 = new Sample(10); // s1変数の値(Sampleオブジェクトの参照)をs2変数にコピー Sample s2 = s1; // 新しいSampleオブジェクトを作成し、s1変数に再度代入(最初のオブジェクトの参照は失われる) s1 = new Sample(10); // s1とs2が同じオブジェクトを参照しているかを確認(結果はfalse) System.out.println(s1 == s2); }
}
このコードでは、まずmain
メソッド内でSample
クラスの新しいインスタンスが作成され、s1
変数にその参照が格納されます。その後、s1
の参照がs2
にコピーされますが、s1
に新しいSample
オブジェクトが再割り当てされるため、s1
とs2
は異なるオブジェクトを指すようになります。最後の行では、s1
とs2
が同じオブジェクトを参照しているかどうかをチェックしていますが、この場合はfalse
となります。なぜなら、s1
には新しいオブジェクトが割り当てられ、s2
は元のオブジェクトを参照し続けているからです。
Discover more from Coursity
Subscribe to get the latest posts sent to your email.