覆蓋 Java 中的 equals()
Lovey Arora
2021年10月2日
2021年7月1日
在 Java 中,覆蓋是指子類或子類執行與父類中宣告的方法相同的方法。
equals()
方法比較兩個字串。如果一個字串物件的資料與另一個相同,則返回 True 值,否則返回 False。當我們覆蓋 equals()
方法時,總是建議也覆蓋 hashtag()
方法。
本教程將演示如何在 Java 中覆蓋 equals。
為了檢查物件中的值是否相等,我們使用 equals()
方法。我們可以在類中重寫這個方法來檢查兩個物件是否有相同的資料,因為 Java 中的類只是從物件類繼承的。
@Override
告訴編譯器在編譯時覆蓋。
請參考下面給出的程式碼:
class Complex {
private double ab, cd;
public Complex(double ab, double cd) {
this.ab = ab;
this.cd = cd;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof Complex)) {
return false;
}
Complex c = (Complex) o;
return Double.compare(ab, c.ab) == 0
&& Double.compare(cd, c.cd) == 0;
}
}
public class Main {
public static void main(String[] args) {
Complex c1 = new Complex(12, 13);
Complex c2 = new Complex(12, 13);
if (c1.equals(c2)) {
System.out.println("Equal ");
} else {
System.out.println("Not Equal ");
}
}
}
輸出:
Equal
在上面的例子中,重寫是通過 equals()
方法完成的,以在布林表示式的幫助下比較兩個複雜的物件。然後,如果物件與自身進行比較,則返回 True。然後,我們檢查了物件是否是 complex 的例項,因此返回 False。現在,我們將物件型別轉換為 complex,以便我們可以比較資料成員。最後,我們製作驅動程式類來測試複雜的類。