覆蓋 Java 中的 equals()

Lovey Arora 2023年10月12日
覆蓋 Java 中的 equals()

在 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,以便我們可以比較資料成員。最後,我們製作驅動程式類來測試複雜的類。

相關文章 - Java Override