共計 904 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Java 中,equals() 方法用于比較兩個對象的內容是否相等。equals() 方法在 Object 類中定義,因此所有的 Java 類都繼承了該方法。
equals() 方法的默認實現是比較兩個對象的引用是否相等,即判斷兩個對象是否指向同一個內存地址。但是,大多數情況下,我們需要自定義 equals() 方法來比較對象的內容是否相等,而不僅僅是比較引用。
重寫 equals() 方法時需遵循以下規則:
- 對稱性:如果 x.equals(y) 返回 true,則 y.equals(x) 也應返回 true。
- 反射性:對于任意非 null 的引用值 x,x.equals(x) 都應返回 true。
- 傳遞性:如果 x.equals(y) 返回 true,并且 y.equals(z) 也返回 true,則 x.equals(z) 也應返回 true。
- 一致性:對于任意非 null 的引用值 x 和 y,在對象沒有被修改的前提下,多次調用 x.equals(y) 應返回相同的結果。
- 對于任意非 null 的引用值 x,x.equals(null) 應返回 false。
通常,我們需要在自定義類中重寫 equals() 方法來比較對象的屬性值是否相等。例如,如果我們有一個 Person 類,可以重寫 equals() 方法來比較兩個 Person 對象的姓名和年齡是否相等。
以下是一個重寫 equals() 方法的例子:
public class Person {private String name;
private int age;
// 構造方法、getter 和 setter 方法省略
@Override
public boolean equals(Object obj) {if (this == obj) {return true;
}
if (obj == null || getClass() != obj.getClass()) {return false;
}
Person person = (Person) obj;
return age == person.age && Objects.equals(name, person.name);
}
}
通過重寫 equals() 方法,我們可以根據具體需求比較對象的內容是否相等,從而更準確地判斷兩個對象是否相等。
丸趣 TV 網 – 提供最優質的資源集合!
正文完