在Java中,equals() 方法用于比較兩個對象是否相等。equals() 方法是Object類的方法,所有的類都繼承自Object類,因此所有的類都可以調用equals() 方法。equals() 方法的默認實現是比較兩個對象的引用是否相等,即判斷兩個對象是否是同一個對象。
如果我們想要比較兩個對象的內容是否相等,就需要重寫equals() 方法。一般情況下,我們需要在自定義類中重寫equals() 方法,以實現自定義的對象比較邏輯。
重寫equals() 方法的一般步驟如下:
下面是一個示例代碼,演示了如何重寫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方法中,我們創建了兩個Person對象,它們的name和age屬性相等,因此調用equals() 方法返回true。