Heim >Java >javaLernprogramm >Unterscheiden Sie in Java zwischen der Gleichheitsmethode und der Gleichheitsmethode
Der Unterschied zwischen equal und equal in Java erfordert spezifische Codebeispiele
In Java müssen wir oft vergleichen, ob zwei Objekte gleich sind. In diesem Fall verwenden wir normalerweise die Gleichheitsmethode oder die Gleichheitsmethode in Java. Obwohl sie ähnlich aussehen, weisen sie einige wichtige Unterschiede auf. In diesem Artikel wird der Unterschied zwischen gleich und gleich vorgestellt und anhand spezifischer Codebeispiele erläutert.
Werfen wir zunächst einen Blick auf die Equal-Methode. Die Methode equal ist eine Methode in der Object-Klasse, und alle Objekte in Java können diese Methode aufrufen. Diese Methode verwendet einen Referenzvergleich, um festzustellen, ob zwei Objekte dieselbe Referenz haben. Zwei Objekte sind gleich, wenn ihre Referenzen gleich sind. Hier ist ein Beispielcode:
String str1 = new String("Hello"); String str2 = new String("Hello"); boolean result = str1.equals(str2); System.out.println(result); // 输出结果为 true
Im obigen Code haben wir zwei String-Objekte str1 und str2 erstellt, die beide „Hello“-Werte haben. Diese beiden Objekte werden jedoch separat über das Schlüsselwort new erstellt, sodass ihre Referenzen unterschiedlich sind. Da die String-Klasse jedoch die Methode equal überschreibt, wird beim Aufruf von str1.equals(str2) true zurückgegeben, was darauf hinweist, dass die beiden Zeichenfolgen gleich sind.
Als nächstes werfen wir einen Blick auf die Methode „equals“. Die Methode equal ist eine öffentliche Methode der Object-Klasse. Wir können sie überschreiben, um den Inhalt zweier Objekte zu vergleichen. Standardmäßig verwendet die Methode „equals“ weiterhin den Referenzvergleich. Wenn wir die Vergleichsregeln anpassen möchten, müssen wir die Methode equals überschreiben. Das Folgende ist ein Beispielcode:
public class Person { private String name; private int age; // 省略构造函数和其他方法 @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Person person = (Person) obj; if (age != person.age) { return false; } return name != null ? name.equals(person.name) : person.name == null; } // 省略hashCode方法和其他方法 }
Im obigen Beispielcode haben wir eine Person-Klasse erstellt und die Methode equals überschrieben. Beim Überschreiben der Gleichheitsmethode stellen wir zunächst fest, ob die Referenzen der beiden Objekte gleich sind. Wenn sie gleich sind, können wir direkt true zurückgeben. Dann bestimmen wir, ob obj leer ist und zur gleichen Klasse gehört, konvertieren dann obj in den Personentyp und vergleichen, ob die Werte von Name und Alter gleich sind.
Das Folgende ist ein Beispielcode für die Verwendung von Person:
Person person1 = new Person("Tom", 20); Person person2 = new Person("Tom", 20); boolean result = person1.equals(person2); System.out.println(result); // 输出结果为 true
Im obigen Code haben wir zwei Personenobjekte Person1 und Person2 erstellt, deren Namens- und Alterswerte gleich sind. Wenn wir person1.equals (person2) aufrufen, werden die Werte von Name und Alter während des Vergleichs verglichen, da wir die Methode „equals“ neu geschrieben haben, sodass das zurückgegebene Ergebnis wahr ist.
Zusammenfassend lässt sich sagen, dass „equal“ und „equals“ in Java häufig verwendete Methoden sind, um zu vergleichen, ob Objekte gleich sind. Die Methode equal ist eine Methode der Object-Klasse, die durch Referenzvergleich bestimmt, ob zwei Objekte gleich sind. Die Methode equal ist eine benutzerdefinierte Vergleichsmethode, mit der Sie Vergleichsregeln anpassen können. In der tatsächlichen Entwicklung sollten wir diese beiden Methoden verwenden, um Objekte entsprechend den spezifischen Anforderungen zu vergleichen.
Das obige ist der detaillierte Inhalt vonUnterscheiden Sie in Java zwischen der Gleichheitsmethode und der Gleichheitsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!