LoginSignup
2
3

More than 5 years have passed since last update.

JAVA equals()メソッド メモ

Last updated at Posted at 2015-11-11

■Main23.java

Hero2 h7 = new Hero2();
        h7.setName("あむ");
        h7.setHp(70);
        Hero2 h8 = new Hero2();
        h8.setName("あむ");
        h8.setHp(70);
        if (h7.equals(h8) == true) {
            System.out.println("同じ内容です");

        } else {
            System.out.println("違う内容です");
        }

        if (h1.equals(h2) == true) {
            System.out.println("同じ内容です");

        } else {
            System.out.println("違う内容です");
        }

■実行結果
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
あむ
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
あむ
違う内容です
違う内容です

_________________________________________________________
そのクラスのインスタンスについて、「何を持って、意味的に同じと見なすか」をequals()メソッドのオーバーライドという形で指定しなければなりません。
■Hero2.javaに
equals()メソッドのオーバーライドをした

public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o instanceof Hero2) {
            Hero2 h7 = (Hero2) o;
            if (this.name.equals(h7.name)) {
                return true;
            }
        }
        return false;
    }

■Main23.javaをコンパイルした実行結果
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
あむ
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
あむ
同じ内容です
違う内容です

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3