Heim Java javaLernprogramm So vergleichen Sie Objekte in Java korrekt auf Gleichheit: Überschreiben und Überschreiben der Methode equal(Object).

So vergleichen Sie Objekte in Java korrekt auf Gleichheit: Überschreiben und Überschreiben der Methode equal(Object).

Jan 11, 2024 pm 05:18 PM
重写 equals Gleichwertigkeit

So vergleichen Sie Objekte in Java korrekt auf Gleichheit: Überschreiben und Überschreiben der Methode equal(Object).

Die Methode equal(Object) in Java ist eine Methode, mit der zwei Objekte auf Gleichheit verglichen werden. In Java-Klassen wird die Methode equal standardmäßig von der Object-Klasse geerbt und vergleicht einfach die Referenzwerte zweier Objekte. Allerdings müssen wir Objekte häufig auf benutzerdefinierte Weise auf Gleichheit vergleichen, was das Überschreiben der Methode equal in einer Unterklasse erfordert.

Um Objekte korrekt auf Gleichheit zu vergleichen, müssen wir mehrere Regeln befolgen. Erstens muss die Methode „equals“ der Reflexivität genügen, was bedeutet, dass ein Objekt sich selbst gleich sein muss. Zweitens muss die Methode „equals“ der Symmetrie genügen, d. h. wenn Objekt A gleich Objekt B ist, müssen auch Objekt B und Objekt A gleich sein. Schließlich muss die Methode „equals“ die Transitivität erfüllen. Das heißt, wenn Objekt A gleich Objekt B und Objekt B gleich Objekt C ist, müssen auch Objekt A und Objekt C gleich sein.

Um die Gleichheitsmethode zu überschreiben und zu überschreiben, müssen wir die folgenden wichtigen Punkte berücksichtigen.

Zuerst müssen wir sicherstellen, dass die Signatur der Equals-Methode mit der Equals-Methode in der Object-Klasse übereinstimmt. Die Signatur der Methode equal sollte lauten: public boolean equal(Object obj). Das bedeutet, dass wir einen Parameter vom Typ Object akzeptieren und einen booleschen Wert zurückgeben müssen.

Zweitens müssen wir eine Typprüfung durchführen, um sicherzustellen, dass der übergebene Parameter ein Objekt ist, das dem aktuellen Objekttyp entspricht. Dies kann durch die Verwendung des Schlüsselworts „instanceof“ erreicht werden. Wenn die Typprüfung fehlschlägt, können wir direkt false zurückgeben.

Dann müssen wir die eingehenden Parameter in den Typ des aktuellen Objekts umwandeln und die Gleichheit verschiedener Eigenschaften vergleichen. In diesem Prozess müssen wir der Implementierungskonvention der Methode „equals“ von Java folgen, d. h. die Methode „equals“ verwenden, um die Eigenschaften von Objekten zu vergleichen, anstatt den Operator „==“ zu verwenden.

Beim Vergleich von Attributwerten müssen wir den Fall von Nullreferenzen berücksichtigen. Wenn der Eigenschaftswert null ist, können wir zum Vergleich die Methode equal der Objects-Klasse verwenden, die die Nullreferenzsituation korrekt behandelt. Darüber hinaus können wir für grundlegende Typattribute direkt den Operator „==“ zum Vergleich verwenden.

Abschließend müssen wir sicherstellen, dass die Methode „equals“ die Methode „hashCode“ überschreibt. Wenn zwei Objekte gleich sind, müssen ihre HashCode-Methoden gemäß der Java-Spezifikation denselben Wert zurückgeben. Dadurch soll sichergestellt werden, dass Objekte bei Verwendung von Datenstrukturen wie Hash-Tabellen korrekt gespeichert und abgerufen werden.

Hier ist ein Beispiel, das zeigt, wie die Methode „equals“ überschrieben wird:

public class Person {
    private String name;
    private int age;
  
    // 省略构造方法、getter和setter方法
  
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof Person)) {
            return false;
        }
        Person other = (Person) obj;
        return Objects.equals(this.name, other.name) && this.age == other.age;
    }
  
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
  
    // 省略其他方法
}
Nach dem Login kopieren

Im obigen Beispiel haben wir die Methode „equals“ überschrieben, um die Namens- und Alterseigenschaften des Person-Objekts auf Gleichheit zu vergleichen. Gleichzeitig haben wir auch die Methode hashCode überschrieben, um sicherzustellen, dass gleiche Objekte denselben Hash-Code haben.

Zusammenfassend lässt sich sagen, dass wir durch korrektes Umschreiben und Überschreiben der Methode „equals“ sicherstellen können, dass wir beim Vergleich von Objekten auf Gleichheit die richtigen Ergebnisse erhalten. Es ist zu beachten, dass beim Umschreiben der Methode „equals“ Eigenschaften wie Reflexivität, Symmetrie und Transitivität erfüllt werden müssen und dass auch die Methode „hashCode“ neu geschrieben werden muss. Indem wir diese Regeln befolgen, können wir sicherstellen, dass wir bei Gleichheitsvergleichen von Objekten die richtigen Ergebnisse erhalten.

Das obige ist der detaillierte Inhalt vonSo vergleichen Sie Objekte in Java korrekt auf Gleichheit: Überschreiben und Überschreiben der Methode equal(Object).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist der Unterschied zwischen den Vergleichsoperatoren Gleichheit (==doppeltes Gleichheitszeichen) und Identität (===dreifaches Gleichheitszeichen) von PHP? Was ist der Unterschied zwischen den Vergleichsoperatoren Gleichheit (==doppeltes Gleichheitszeichen) und Identität (===dreifaches Gleichheitszeichen) von PHP? Sep 07, 2023 pm 05:45 PM

In PHP sind Double-Equals (==) und Triple-Equals (===) Vergleichsoperatoren, mit denen verglichen wird, ob Werte gleich sind. Sie unterscheiden sich jedoch in ihrem Verhalten und der Genauigkeit des Vergleichsprozesses. Double-Equals (==) Der Double-Equals-Operator prüft die Gleichheit zwischen zwei Werten, führt jedoch eine Typerzwingung durch, wenn die beiden Werte unterschiedliche Datentypen haben. Das bedeutet, dass PHP versucht, den Wert in einen generischen Typ umzuwandeln, bevor der Vergleich durchgeführt wird. Hier sind einige wichtige Punkte zum doppelten Gleichheitsoperator: Wenn zwei Werte denselben Typ haben, verhält er sich wie der dreifache Gleichheitsoperator (strenger Vergleich). Wenn zwei Werte unterschiedliche Typen haben, versucht PHP, sie in einen gemeinsamen Typ umzuwandeln. Wenn Sie beispielsweise eine Ganzzahl und eine Zeichenfolge vergleichen, versucht PHP, die Zeichenfolge zu konvertieren

Wie schreibe ich eine Funktion in Golang um? Wie schreibe ich eine Funktion in Golang um? Apr 27, 2024 am 11:15 AM

In Go ermöglicht das Überschreiben von Methoden, Methoden in einer Basisklasse in einer abgeleiteten Klasse neu zu definieren und dabei die gleiche Methodensignatur beizubehalten: Verwenden Sie das Schlüsselwort override. Die überschriebene Methode muss dieselbe Signatur wie die Basismethode haben. Der Empfängertyp der überschriebenen Methode muss ein Untertyp des Basistyps sein.

So überschreiben Sie die Methode equal in Java korrekt So überschreiben Sie die Methode equal in Java korrekt May 09, 2023 am 11:19 AM

1. Was ist die Gleichheitsmethode? Wir müssen zunächst wissen, dass die Object-Klasse die übergeordnete Klasse (Superklasse/Basisklasse) aller Klassen in Java ist. Das heißt, in Java erben alle Klassen standardmäßig von der Object-Klasse implementiert in der Object-Klasse Wir können alle Methoden direkt verwenden. Die Methode equal ist eine der vielen Methoden, die von der Object-Klasse implementiert werden. Die folgenden Screenshots stammen von allen Methoden der Java11APIObject-Klasse: 1.1equals-Methode: equal: ist eine Methode in der Object-Klasse, die nur den Referenztyp bestimmen kann. Ich kann Ihnen später zeigen, dass der JDK-Quellcode bestimmt, ob die Adressen gleich sind standardmäßig (da die zugrunde liegende Referenztypvariable Das Wesentliche ist das Speichern

Wie Nginx die Anforderungsumschreibungskonfiguration basierend auf der Anforderungs-URL implementiert Wie Nginx die Anforderungsumschreibungskonfiguration basierend auf der Anforderungs-URL implementiert Nov 08, 2023 pm 04:15 PM

Nginx ist ein leichter, leistungsstarker Webserver. Er unterstützt nicht nur erweiterte Funktionen wie Reverse-Proxy und Lastausgleich, sondern verfügt auch über leistungsstarke Funktionen zum Umschreiben von Anforderungen. In tatsächlichen Webanwendungen muss in vielen Fällen die Anforderungs-URL neu geschrieben werden, um eine bessere Benutzererfahrung und Suchmaschinenoptimierungseffekte zu erzielen. In diesem Artikel wird vorgestellt, wie Nginx die Konfiguration zum Umschreiben von Anforderungen basierend auf der Anforderungs-URL implementiert, einschließlich spezifischer Codebeispiele. Rewrite-Syntax In Nginx können Sie die Rewrite-Direktive verwenden, um das Umschreiben von Anforderungen durchzuführen. seine Grundsprache

Nginx schreibt die URL-Konfigurationspraxis neu, um die Website-Struktur und SEO zu optimieren Nginx schreibt die URL-Konfigurationspraxis neu, um die Website-Struktur und SEO zu optimieren Jul 04, 2023 pm 04:30 PM

Praktische Praxis des Umschreibens der URL-Konfiguration durch Nginx, Optimierung der Website-Struktur und SEO Einführung: Im modernen Internetzeitalter können herkömmliche statische Webseiten die Bedürfnisse der Benutzer nicht mehr erfüllen. Um ein besseres Benutzererlebnis zu bieten, beginnen viele Websites mit der Verwendung dynamischer Web-Technologie. Allerdings sind die URLs dynamischer Webseiten oft nicht benutzerfreundlich genug und es gibt gewisse Schwierigkeiten bei der Einbindung in Suchmaschinen und der Weitergabe durch Benutzer. In diesem Artikel wird erläutert, wie Sie die URL-Rewriting-Funktion von Nginx verwenden, um die Website-Struktur und SEO zu optimieren. 1. Nginx‘ URL-Rewriting-Funktion Nginx

Was ist der Unterschied zwischen der Verwendung von == und equal in Java? Was ist der Unterschied zwischen der Verwendung von == und equal in Java? May 15, 2023 am 09:25 AM

1. == Parsing == wird häufig für Vergleiche zwischen denselben Basisdatentypen verwendet und kann auch für Vergleiche zwischen Objekten desselben Typs verwendet werden. Wenn == Basisdatentypen vergleicht, werden zwei Basisdatentypen verglichen Die Werte sind gleich; wenn == die beiden zu vergleichenden Objekte sind, dann handelt es sich beim Vergleich um die Referenzen der beiden Objekte, also um zu vergleichen, ob die Referenzen der beiden Objekte gleich sind ob die beiden Objekte auf denselben Speicherbereich verweisen. 2. Equals-Methodenanalyse Die Equals-Methode wird hauptsächlich zwischen zwei Objekten verwendet, um festzustellen, ob ein Objekt einem anderen Objekt entspricht. Werfen wir einen Blick auf den Quellcode der Methode equal in der Object-Klasse publicbooleanequals(Objectobj){

Was sind die Unterschiede zwischen Nosql und MySQL? Was sind die Unterschiede zwischen Nosql und MySQL? Jan 28, 2023 pm 04:51 PM

Unterschiede: 1. MySQL ist eine relationale Datenbank, während NoSQL nicht relational ist. 2. Die strengen Modusbeschränkungen von MySQL sind nicht einfach zu erweitern, während NoSQL leicht zu erweitern ist. 3. MySQL erfordert vor dem Erstellen einer Datenbank ein detailliertes Datenbankmodell, was in NoSQL nicht erforderlich ist. 4. MySQL bietet eine große Anzahl von Berichtstools, Nosql jedoch nicht. 5. Im Vergleich zu MySQL bietet NoSQL ein flexibleres Design. 6. Die in MySQL verwendete Standardsprache ist SQL, während NoSQL keine Standardabfragesprache hat.

So vergleichen Sie Objekte in Java korrekt auf Gleichheit: Überschreiben und Überschreiben der Methode equal(Object). So vergleichen Sie Objekte in Java korrekt auf Gleichheit: Überschreiben und Überschreiben der Methode equal(Object). Jan 11, 2024 pm 05:18 PM

Die Methode equal(Object) in Java ist eine Methode, mit der zwei Objekte auf Gleichheit verglichen werden. In Java-Klassen wird die Methode equal standardmäßig von der Object-Klasse geerbt und vergleicht einfach die Referenzwerte zweier Objekte. Allerdings müssen wir Objekte häufig auf benutzerdefinierte Weise auf Gleichheit vergleichen, was das Überschreiben der Methode equal in einer Unterklasse erfordert. Um Objekte korrekt auf Gleichheit zu vergleichen, müssen wir mehrere Regeln befolgen. Zunächst einmal muss die Methode „equals“ der Reflexivität genügen

See all articles