Heim> Java> javaLernprogramm> Hauptteil

So verwenden Sie die Funktion equal() der Object-Klasse in Java, um zu vergleichen, ob zwei Objekte gleich sind

PHPz
Freigeben: 2023-07-24 20:00:17
Original
1803 Leute haben es durchsucht

Wie verwendet Java die Funktion equal() der Object-Klasse, um zu vergleichen, ob zwei Objekte gleich sind?

In Java ist die Funktion equal() eine Methode zum Vergleichen, ob zwei Objekte gleich sind. Alle Java-Klassen erben von der Object-Klasse, sodass alle Objekte mit der Funktion equal() verglichen werden können. Um jedoch zwei Objekte korrekt auf Gleichheit zu vergleichen, müssen Sie die Methode equal() in Ihrer benutzerdefinierten Klasse überschreiben.

Die Standardimplementierung der Methode equal() in der Object-Klasse verwendet Referenzgleichheit zum Vergleich. Das heißt, die Methode equal() gibt nur dann true zurück, wenn zwei Objekte auf dieselbe Speicheradresse verweisen. Dies ist in den meisten Fällen nicht das gewünschte Verhalten. Normalerweise möchten wir den Inhalt zweier Objekte auf Gleichheit vergleichen.

Um dieses Ziel zu erreichen, müssen wir die Methode equal() in der benutzerdefinierten Klasse überschreiben. Beim Überschreiben der Methode equal() müssen Sie die folgenden Punkte beachten:

  1. Zunächst müssen Sie prüfen, ob das eingehende Objekt null ist. Wenn das übergebene Objekt null ist, wird direkt false zurückgegeben.
  2. Zweitens müssen Sie prüfen, ob das übergebene Objekt eine Instanz der aktuellen Klasse ist. Wenn es sich nicht um eine Instanz derselben Klasse handelt, geben Sie direkt false zurück.
  3. Schließlich können wir bei Bedarf die Eigenschaften zweier Objekte auf Gleichheit vergleichen. Die Vergleichsmethode hängt von der tatsächlichen Situation ab.

Das Folgende ist ein einfaches Beispiel. Wir verwenden eine Person-Klasse, um zu demonstrieren, wie die Methode equal() überschrieben wird:

public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object obj) { // 检查传入的对象是否为null if (obj == null) { return false; } // 检查传入的对象是否是Person类的实例 if (!(obj instanceof Person)) { return false; } // 比较两个对象的属性是否相等 Person other = (Person) obj; return this.name.equals(other.name) && this.age == other.age; } }
Nach dem Login kopieren

Im obigen Beispiel überschreiben wir die Methode equal() der Klasse Person. Zuerst prüfen wir, ob das eingehende Objekt null ist, und wenn ja, geben wir direkt false zurück. Dann verwenden wir den Operator „Instanceof“, um zu prüfen, ob das eingehende Objekt eine Instanz der Klasse „Person“ ist, und wenn nicht, geben wir direkt „false“ zurück. Schließlich vergleichen wir die Namens- und Alterseigenschaften der beiden Objekte, um zu sehen, ob sie gleich sind. Wenn sie gleich sind, geben wir true zurück, andernfalls geben wir false zurück.

Als nächstes können wir die Methode equal() verwenden, um zu vergleichen, ob zwei Person-Objekte gleich sind:

public class Main { public static void main(String[] args) { Person person1 = new Person("Alice", 25); Person person2 = new Person("Bob", 30); Person person3 = new Person("Alice", 25); System.out.println(person1.equals(person2)); // false System.out.println(person1.equals(person3)); // true } }
Nach dem Login kopieren

Im obigen Beispiel haben wir drei Person-Objekte erstellt. Wenn Sie die Methode equal() aufrufen, um Person1 und Person2 zu vergleichen, ist das Ergebnis falsch, da ihre Namens- und Altersattribute nicht gleich sind. Wenn Sie die Methode equal() aufrufen, um Person1 und Person3 zu vergleichen, ist das Ergebnis wahr, da ihre Namens- und Altersattribute gleich sind.

Anhand des obigen Beispiels können wir sehen, wie die Methode equal() der Object-Klasse verwendet wird, um zu vergleichen, ob zwei Objekte gleich sind. Wenn wir die Methode equal() überschreiben, können wir anhand ihrer Eigenschaften bestimmen, ob die Objekte gleich sind, um unseren tatsächlichen Anforderungen gerecht zu werden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion equal() der Object-Klasse in Java, um zu vergleichen, ob zwei Objekte gleich sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!