DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

3章8

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);
    }
}
Enter fullscreen mode Exit fullscreen mode

このコードでは、まずmainメソッド内でSampleクラスの新しいインスタンスが作成され、s1変数にその参照が格納されます。その後、s1の参照がs2にコピーされますが、s1に新しいSampleオブジェクトが再割り当てされるため、s1s2は異なるオブジェクトを指すようになります。最後の行では、s1s2が同じオブジェクトを参照しているかどうかをチェックしていますが、この場合はfalseとなります。なぜなら、s1には新しいオブジェクトが割り当てられ、s2は元のオブジェクトを参照し続けているからです。

Top comments (0)