logo

Javaのequalsメソッドをオーバーライドする

オブジェクト クラスの 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); } } 

出力:

Javaのequalsメソッドをオーバーライドする

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); } } 

出力:

Javaのequalsメソッドをオーバーライドする