Java のquals(Object) メソッドとその使用シナリオの詳細な説明
Java では、equals(Object) メソッドは非常に重要なメソッドです。 2 つのオブジェクトが等しいかどうかを比較します。この記事では、equals(Object) メソッドの使用シナリオと原則を詳細に説明し、いくつかの一般的な使用テクニックを紹介します。
1.equals(Object) メソッドの原理
Java では、すべてのクラスが Object クラスを継承し、Object クラスの equals(Object) メソッドがデフォルトの実装です。 Object クラスの equals(Object) メソッドは、2 つのオブジェクトの参照が等しいかどうか、つまり 2 つのオブジェクトが同じオブジェクトであるかどうかを実際に比較します。具体的な実装は次のとおりです。
public booleanquals(Object obj) {
return (this == obj);
}
多くの場合、比較する必要があるのは、2 つの内容が一致するかどうかです。単なる引用符ではなく、オブジェクトは等しいです。したがって、ニーズを満たすために、カスタム クラスのquals(Object) メソッドをオーバーライドする必要があります。
2.equals(Object) メソッドの使用シナリオ
値を比較する必要がある場合2 つの基本的なタイプのうち、== 演算子を直接使用できます。たとえば、2 つの整数が等しいかどうかを比較するには:
int a = 10;
int b = 10;
if (a == b) {
System.out.println("a和b相等");
}
2 つの参照型の値を比較する必要がある場合は、equals(Object) メソッドを使用する必要があります。たとえば、2 つの文字列が等しいかどうかを比較します。
String str1 = "Hello";
String str2 = "Hello";
if (str1.equals(str2)) {
System.out.println("str1和str2相等");
}
private String name; private int age; // 构造方法和其他方法省略 @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Person person = (Person) obj; return age == person.age && Objects.equals(name, person.name); }
person person2 = new Person("Zhang San", 20);
if (person1.equals(person2)) {
System.out.println("person1和person2相等");
String str2 = "Hello";
if (Objects.equals(str1, str2) ) ) {
System.out.println("str1和str2相等");
以上がJavaのequalsメソッドの使用法と適用可能なシナリオの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。