ゆいの学習帳

英語・プログラミング・プロモーション・日々のこと、エトセトラ。気になったことや勉強したことを、メモしていきます。

【Java】Objectクラスのメソッド、equals()について

今日は、equals()メソッドについてです。
ちゃんと覚えていたつもりだったし、問題なく使えていたから通り過ぎていたところを、もう一度勉強するよ。

equals()メソッドとは

2つの変数が指しているインスタンスが同じである場合にtrueを戻り値として返す

 

javaコード

 class Car
{
 protected int num;
 protected double gas;

 public Car()
 {
   num = 0;
   gas = 0.0;
   System.out.println("車を作成。");
  }
}

class CarExe
{
 public static void main(String[] args)
 {
  Car car1 = new Car();
  Car car2 = new Car();

  Car car3;
  car3 = car1;

  boolean isCar1Car2 = car1.equals(car2);
  boolean isCar1Car3 = car1.equals(car3);

  System.out.println(String.format("car1とcar2が同じかどうか : %s", isCar1Car2);
  System.out.println(String.format("car1とcar3が同じかどうか : %s", isCar1Car3);
  }

実行結果

車を作成。
車を作成。
car1とcar2が同じかどうか : false
car1とcar3が同じかどうか : true

Car裏すのインスタンスを2つ作成して、変数car1とcar2と命名。
変数car3にはcar1を代入しています。これは、同じインスタンスをさすということでした。
したがって、同じcar1とcar3は同じインスタンスを指しているからtrueです、という結果がequalse()メソッドからわかるということです。

Stringクラスのequals()メソッド

equalse()メソッドは、そのクラスに適したものにオーバーライドされている場合もあるそうです。例えば、Stringクラスはそれにあたり、勉強中も大変よく使いました。

2つのインスタンスが表している文字列の内容が同じかどうかを確認

Stringクラスでは、「2つのインスタンスが同じかどうか」ではなく「2つのインスタンスが同じ文字列かどうか」を調べることができます。

つまり、2つのインスタンスが異なるものであったとしても、中身の文字列が同じ値であればtrueを返します。