Codegym University コースの一部としてのメンターによる講義の抜粋。フルコースにお申し込みください。


「 Java での変数の比較について少し説明したいと思います。 」

「最も単純な比較演算子、より小さい (<) とより大きい (>) はすでにご存知でしょう。」

「はい。」

「等しい (==) や等しくない (!=) などの演算子もあります。また、以下 (<=) や以上 (>=) もあります。」

「今度は面白くなってきました。」

「Java には =< または => 演算子がないことに注意してください。」

" = 記号は代入演算に使用されます。 そのため、等しいかどうかをテストするために 2 つの等号 (==) が使用されます。変数が等しくないことを確認するには、!=演算子を使用します。

"そうか。"

「Java で == 演算子を使用して 2 つの変数を比較する場合、変数の内容を比較していることになります。」

「したがって、プリミティブ変数の場合、その値が比較されます。」

参照変数の場合、参照が比較されます同一であるが別個のオブジェクトがあるとします。それらへの参照が異なるため、比較するとそれらが等しくないことがわかります。つまり、比較結果はfalseになります。参照の比較はtrueになります。」両方の参照が同じオブジェクトを指している場合のみ。

「オブジェクトの内部内容を比較するには、特別なequalsメソッドを使用します。このメソッド(およびObjectクラスのすべてのメソッド)は、宣言していなくてもコンパイラによってクラスに追加されます。いくつかの例を示します: 」

コード 説明
1
int a = 5;
int b = 5;
System.out.println(a == b);
プリミティブ型を比較します。
trueと画面に表示されます。
2
Cat cat1 = new Cat("Oscar");
Cat cat2 = cat1;
System.out.println(cat1 == cat2);
参照を比較します。
trueと画面に表示されます。どちらの変数も同じオブジェクトへの
参照を保存します。
3
String s = new String("Mom");
String s2 = s;
System.out.println(s == s2);
参照を比較します。
trueと画面に表示されます。どちらの変数も同じオブジェクトへの
参照を保存します。
4
Cat cat1 = new Cat("Oscar");
Cat cat2 = new Cat("Oscar");
System.out.println(cat1 == cat2);
参照を比較します。
falseと画面に表示されます。
2 つの変数は同一の Cat オブジェクトを参照しますが、同じものではありません。
5
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s == s2);
参照を比較します。
falseと画面に表示されます。
2 つの変数は同一の String オブジェクトを参照しますが、同じものではありません。
6
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s.equals(s2));
オブジェクトを比較します。
trueと画面に表示されます。
2 つの変数は同一の String オブジェクトを参照します

「ああ、忘れるところでした!ここでいくつかの演習をご紹介します。」