ID非公開

2023/12/3 20:27

22回答

Javaについて質問します。 なぜ同一性が違うのにCが正解なのでしょうか。 同一性が同じならDも正解になるはずです。

画像

ベストアンサー

NEW! この回答はいかがでしたか? リアクションしてみよう

ThanksImg質問者からのお礼コメント

なるほど! 分かりやすく解説して頂きありがとうございました!

お礼日時:2023/12/3 23:39

その他の回答(1件)

Dで行われるのは配列のequalsメソッドで、その中では同値性はチェックしていません。同一性しか見てないのでfalseです。 Cの場合、そもそもcloneの基本はインスタンスの「中身」のインスタンスのコピーなので、array1とarray2の1番目の要素は同じインスタンスだから、同一性がtrueです。 array2 = array1.clone(); これがやってることを分解すると、 array2 = new char[2][2]; array2[0] = array1[0]; array2[1] = array1[1]; なので、array1[1] == array2[1]は同値でtrueです。

ID非公開

質問者2023/12/3 21:24

同一性は、参照先が同じかどうかを見ていると思っているのですが違いますか??