Heim >Java >javaLernprogramm >Wie verwende ich die Methode equal() der Java-Object-Klasse richtig?
Grundlegende Konzepte:
Die Object-Klasse befindet sich im Paket java.lang. Das Paket java.lang enthält die grundlegendsten und wichtigsten Klassen von Java, die während der Kompilierung automatisch importiert werden Die Objektklasse besteht aus allen Vorfahren der Java-Klasse. Jede Klasse verwendet Object als Oberklasse. Alle Objekte (einschließlich Arrays) implementieren die Methoden dieser Klasse. Sie können eine Variable vom Typ Objekt verwenden, um auf einen beliebigen Objekttyp zu zeigen.
Wenn zwei Objekte denselben Typ und denselben Attributwert haben, es heißt so. Beide Objekte sind gleich. Wenn zwei Referenzobjekte auf dasselbe Objekt verweisen, werden die beiden Variablen als gleich bezeichnet. Der Prototyp der in der Object-Klasse definierten Funktion equal ist:
public boolean equal(Object);Es bestimmt, ob zwei Objekte gleich sind, nicht, ob sie gleich sind
①Es kann nur verarbeiten Referenztypvariablen
②In der Object-Klasse wurde festgestellt, dass equal() immer noch vergleicht, ob die Adresswerte der beiden Referenzvariablen gleich sind
package com.example.demo.test;
public class Person {
private String userName;
private String age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
package com.example.demo.test;
public class Test {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1.equals(p2));
System.out.println(p1 == p2);
/*
* String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。
*/
String s1 = new String("AA");
String s2 = new String("AA");
System.out.println(s1.equals(s2));
System.out.println(s1 == s2);
}
}
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
Das obige ist der detaillierte Inhalt vonWie verwende ich die Methode equal() der Java-Object-Klasse richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!