共計(jì) 970 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
在 Java 中,equals() 方法用于比較兩個(gè)對象是否相等。equals() 方法是 Object 類的方法,所有的類都繼承自 Object 類,因此所有的類都可以調(diào)用 equals() 方法。equals() 方法的默認(rèn)實(shí)現(xiàn)是比較兩個(gè)對象的引用是否相等,即判斷兩個(gè)對象是否是同一個(gè)對象。
如果我們想要比較兩個(gè)對象的內(nèi)容是否相等,就需要重寫 equals() 方法。一般情況下,我們需要在自定義類中重寫 equals() 方法,以實(shí)現(xiàn)自定義的對象比較邏輯。
重寫 equals() 方法的一般步驟如下:
- 判斷參數(shù)是否為 null,如果是 null,則返回 false。
- 判斷對象是否為同一個(gè)引用,如果是同一個(gè)引用,則返回 true。
- 判斷對象是否為同一類型,如果不是同一類型,則返回 false。
- 將參數(shù)對象轉(zhuǎn)換為當(dāng)前類的對象。
- 比較對象的每個(gè)屬性是否相等,如果所有屬性都相等,則返回 true,否則返回 false。
下面是一個(gè)示例代碼,演示了如何重寫 equals() 方法:
public class Person {
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;
if (age != person.age) {return false;}
return name.equals(person.name);
}
public static void main(String[] args) {Person person1 = new Person("Alice", 30);
Person person2 = new Person("Alice", 30);
System.out.println(person1.equals(person2)); // 輸出為 true
}
}
在上面的代碼中,我們重寫了 Person 類的 equals() 方法,比較了 Person 對象的 name 和 age 屬性是否相等。在 main 方法中,我們創(chuàng)建了兩個(gè) Person 對象,它們的 name 和 age 屬性相等,因此調(diào)用 equals() 方法返回 true。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完