オブジェクト クラスの equals() メソッドは、オブジェクトを受け入れ、それを現在のオブジェクトと比較するため、2 つのオブジェクトを比較するために使用されます。これら 2 つのオブジェクトへの参照が等しい場合、メソッドは true を返します。それ以外の場合は、そうではありません。
例
次の例の Employee クラスには、name と age の 2 つの変数と、パラメーター化された関数 Object() { [ネイティブ コード] } があります。
equals() メソッドを使用して、同一のデータを与え、結果を比較することで、main メソッドから 2 つのオブジェクトを作成します。
Object クラスの equals() メソッドは、オブジェクトへの参照が同一の場合にのみ true を返すため、このソフトウェアは false を返します。
equals メソッドをオーバーライドするコード例:
EqualsExpl.java
import java.util.Scanner; class Student { private String n; private int a; Student(String n, int a){ this.n = n; this.a = a; } } public class EqualsExpl { public static void main(String[] args) { Student s1 = new Student('Sonoo', 19); Student s2 = new Student('Jaiswal', 19); // Comparing the two instances boolean bool = s1.equals(s2); System.out.println(bool); } }
出力:
equals() メソッドのオーバーライド
実際、Object は Java のすべてのクラスのスーパークラスであるため、独自のバージョンの平等メソッドを開発できます。
コード例:
EqualsExpl1.java
class Student { private String n; private int a; Student(String n, int a){ this.n = n; this.a = a; } public boolean equals(Object o) { if (o == this) { return true; } if (!(o instanceof Student)) { return false; } Student s = (Student) o; return n.equals(s.n)&& Integer.compare(a, s.a) == 0; } } public class EqualsExpl1 { public static void main(String[] args) { Student s1 = new Student('Sonoo', 19); Student s2 = new Student('Jaiswal', 19); //Comparing the two instances boolean bool = s1.equals(s2); System.out.println(bool); } }
出力: