「Java17」Objectクラスのequalsメソッドを使うサンプル

環境
JavaSE-17
Spring Tool Suite 4

書式
クラス名 インスタンス名1= new クラス名(xxx);
クラス名 インスタンス名2= new クラス名(xxx);
if(インスタンス名1.equals(インスタンス名2)){処理コード}

使用例

package com.arkgame.study;

public class ObjectEqualDemo {

      public static void main(String[] args) {
            // stuAインスタンス生成
            Student stuA = new Student("東京");
            // stuBインスタンス生成
            Student stuB = new Student("東京");
            System.out.println("値1: " + stuA.addr);
            System.out.println("値2: " + stuB.addr);
            // インスタンス判定
            if (stuA.equals(stuB)) {
                  System.out.println("インスタンスstuAとインスタンスstuBは同じです");
            } else {
                  System.out.println("インスタンスstuAとインスタンスstuBは不一致です");
            }

      }

}
//クラスの定義
class Student {
      String addr;

      // コンストラクタ
      Student(String addr) {
            this.addr = addr;
      }

      // equalsの定義
      public boolean equals(Object obj) {
            if (obj == this)
                  return true;
            // インスタンスであるか判定
            if (obj instanceof Student) {
                  Student st = (Student) obj;
                  // Stringクラスのequalsメソッドで文字列の値が等しいか判定
                  if (this.addr.equals(st.addr)) {
                        return true;
                  }
                  return false;
            }
            return false;
      }
}

実行結果
値1: 東京
値2: 東京
インスタンスstuAとインスタンスstuBは同じです

Java

Posted by arkgame