首頁 > Java > java教程 > 如何正確使用Java Object類別的equals()方法?

如何正確使用Java Object類別的equals()方法?

WBOY
發布: 2023-05-07 08:13:07
轉載
845 人瀏覽過

基本概念:

  • Object類別位於java.lang套件中,java.lang套件包含著Java最基礎和核心的類,在編譯時會自動導入;

  • Object類別是所有Java類別的祖先。每個類別都使用 Object 作為超類別。所有物件(包括數組)都實作這個類別的方法。可以使用型別為Object的變數指向任意型別的物件

equals()方法:比較兩個物件是否同一

#如果兩個物件具有相同的類型以及相同的屬性值,則稱這兩個物件相等。如果兩個引用物件指的是同一個物件,則稱這兩個變數為同一。 Object類別中定義的equals 函數原型為:

public boolean equals(Object);他是判斷兩個物件是否同一,並不是相等

如何正確使用Java Object類別的equals()方法?

如何正確使用Java Object類別的equals()方法?

### ################ ①只能處理引用類型變數################### ②在Object類,發現equals()仍然比較的兩個引用變數的位址值是否相等############
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方法比較的是兩個物件是否同一,######而String類別中的equals方法比較的是字串的value是否相等。請看String.java中equals的方法###
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;
    }
登入後複製

以上是如何正確使用Java Object類別的equals()方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板