Javaオブジェクトクラスのequals()メソッドを正しく使用するにはどうすればよいですか?

WBOY
リリース: 2023-05-07 08:13:07
転載
816 人が閲覧しました

基本概念:

  • オブジェクト クラスは java.lang パッケージにあり、java.lang パッケージには Java の最も基本的なコア クラスが含まれています。コンパイル中に自動的にインポートされます;

  • オブジェクト クラスは、すべての Java クラスの祖先です。すべてのクラスは、そのスーパークラスとして Object を使用します。すべてのオブジェクト (配列を含む) は、このクラスのメソッドを実装します。 Object 型の変数を使用して、任意の型のオブジェクトを指すことができます。

equals() メソッド:2 つのオブジェクトを比較して、それらが同じかどうかを確認します

2 つのオブジェクトが同じタイプと同じ属性値を持つ場合、2 つのオブジェクトは等しいと言われます。 2 つの参照オブジェクトが同じオブジェクトを参照している場合、2 つの変数は同じであると言われます。 Object クラスで定義されているequals関数のプロトタイプは次のとおりです:

public boolean equals(Object);これは、2つのオブジェクトが等しいかどうかではなく、同じであるかどうかを判断するために使用されます

Javaオブジェクトクラスのequals()メソッドを正しく使用するにはどうすればよいですか?

  • ①参照型変数のみ扱える

  • # ②オブジェクト内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);
    }
}
ログイン後にコピー

Javaオブジェクトクラスのequals()メソッドを正しく使用するにはどうすればよいですか?

できること実行結果からわかるのは、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート