ホームページ >Java >&#&チュートリアル >Javaオブジェクトクラスのequals()メソッドを正しく使用するにはどうすればよいですか?
基本概念:
オブジェクト クラスは java.lang パッケージにあり、java.lang パッケージには Java の最も基本的なコア クラスが含まれています。コンパイル中に自動的にインポートされます;
オブジェクト クラスは、すべての Java クラスの祖先です。すべてのクラスは、そのスーパークラスとして Object を使用します。すべてのオブジェクト (配列を含む) は、このクラスのメソッドを実装します。 Object 型の変数を使用して、任意の型のオブジェクトを指すことができます。
equals() メソッド:2 つのオブジェクトを比較して、それらが同じかどうかを確認します
2 つのオブジェクトが同じタイプと同じ属性値を持つ場合、2 つのオブジェクトは等しいと言われます。 2 つの参照オブジェクトが同じオブジェクトを参照している場合、2 つの変数は同じであると言われます。 Object クラスで定義されているequals関数のプロトタイプは次のとおりです:
public boolean equals(Object);これは、2つのオブジェクトが等しいかどうかではなく、同じであるかどうかを判断するために使用されます
①参照型変数のみ扱える
# ②オブジェクト内class, findquals() 比較されている 2 つの参照変数のアドレス値はまだ等しいですか?
package com.example.demo.test; public class Person { private String userName; private String age; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
package com.example.demo.test; public class Test { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); System.out.println(p1.equals(p2)); System.out.println(p1 == p2); /* * String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。 */ String s1 = new String("AA"); String s2 = new String("AA"); System.out.println(s1.equals(s2)); System.out.println(s1 == s2); } }
できること実行結果からわかるのは、Objectのequalsメソッドです。比較するのは2つのオブジェクトが同じかどうかで、
とStringクラスのequalsメソッドは、文字列の値が等しいかどうかを比較します。 String.java
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }のequalsメソッドを見てください。
以上がJavaオブジェクトクラスのequals()メソッドを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。