「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は同じです