共計 967 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Java 中,equals() 方法是用于比較兩個對象是否相等的方法。equals() 方法是 Object 類中的方法,所有類都繼承自 Object 類,因此所有類都可以使用 equals() 方法。
equals() 方法的默認實現是比較兩個對象的引用是否相等,即判斷兩個對象是否是同一個對象。但是,通常情況下我們需要比較兩個對象的內容是否相等,因此需要重寫 equals() 方法。
重寫 equals() 方法時,一般需要滿足以下幾個條件:
- 自反性:對于任意非 null 的引用值 x,x.equals(x) 應該返回 true。
- 對稱性:對于任意非 null 的引用值 x 和 y,如果 x.equals(y) 返回 true,則 y.equals(x) 也應該返回 true。
- 傳遞性:對于任意非 null 的引用值 x、y 和 z,如果 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() 方法時,一般需要先判斷傳入的對象是否為當前類的實例,然后再進行比較。
例如,以下是一個重寫 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;
return age == person.age && Objects.equals(name, person.name);
}
}
在上述例子中,equals() 方法首先判斷傳入的對象是否為 Person 類的實例,然后再比較兩個 Person 對象的屬性值是否相等。最后,使用 Objects.equals() 方法比較 name 屬性值,以處理 name 屬性值為 null 的情況。
丸趣 TV 網 – 提供最優質的資源集合!
正文完