Überschreiben Sie equals() in Java
In Java liegt Overriding vor, wenn die untergeordnete Klasse oder die untergeordnete Klasse dieselbe Methodenausführung wie in der übergeordneten Klasse deklariert hat.
Die Methode equals()
vergleicht zwei Strings. Wenn die Daten eines String-Objekts mit denen des anderen übereinstimmen, wird der Wert True zurückgegeben, ansonsten False. Wenn wir die Methode equals()
überschreiben, wird immer empfohlen, auch die Methode hashtag()
zu überschreiben.
Dieses Tutorial zeigt, wie man equals in Java überschreibt.
Um zu überprüfen, ob die Werte in den Objekten gleich sind oder nicht, verwenden wir die Methode equals()
. Wir können diese Methode in der Klasse überschreiben, um zu überprüfen, ob die beiden Objekte die gleichen Daten haben oder nicht, da die Klassen in Java nur von den Objektklassen geerbt werden.
Der @Override
teilt dem Compiler mit, dass er während der Kompilierzeit überschrieben wird.
Siehe den unten angegebenen Code:
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 ");
}
}
}
Ausgabe:
Equal
Im obigen Beispiel erfolgt das Überschreiben durch die Methode equals()
, um zwei komplexe Objekte mit Hilfe des Booleschen Ausdrucks zu vergleichen. Wenn das Objekt dann mit sich selbst verglichen wird, gibt es True zurück. Dann haben wir überprüft, ob das Objekt eine Instanz von complex ist oder nicht und gibt daher False zurück. Jetzt wandeln wir das Objekt in einen Komplex um, damit wir die Datenelemente vergleichen können. Schließlich erstellen wir eine Treiberklasse, um die komplexe Klasse zu testen.