Die Funktion „equals“ wurde im Basisklassenobjekt definiert. Der Quellcode lautet wie folgt
Kopieren Sie den Codecode wie folgt:
öffentlicher boolescher Wert gleich(Objekt obj) {
return (this == obj);
}
Aus dem Quellcode ist ersichtlich, dass die Standardmethode „equals()“ mit „==“ übereinstimmt. Es handelt sich um Verweise auf die zu vergleichenden Objekte, nicht auf Objektwerte (dies entspricht unserem gesunden Menschenverstand, der „equals()“ bedeutet). Der Grund dafür ist, dass die meisten Klassen in Java die Methode equal() überschrieben haben. Das Folgende ist ein Beispiel für die Methode equal() der Klasse String.
[Java]
Kopieren Sie den Codecode wie folgt:
/** Der Wert wird zur Zeichenspeicherung verwendet */
privater endgültiger Zeichenwert[];
/** Der Offset ist der erste Index des verwendeten Speichers */
privater finaler Int-Offset;
/** Die Anzahl ist die Anzahl der Zeichen im String */
private final int count;
[Java] Plaincopyprint anzeigen?
öffentlicher boolescher Wert gleicht(Objekt anObjekt) {
if (this == anObject) {
return true;
}
if (anObject-Instanz von String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = Wert;
char v2[] = anotherString.value;
int i = Offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
} //www.software8.co
return false;
}
Equals() der String-Klasse ist sehr einfach, es konvertiert lediglich die String-Klasse in ein Zeichenarray und vergleicht es Stück für Stück.
Zusammenfassend sollten wir bei der Verwendung der Methode equal() auf Folgendes achten:
1. Da equal() auf ein benutzerdefiniertes Objekt angewendet wird, müssen Sie die Methode equal() des Systems in der benutzerdefinierten Klasse überschreiben.
2. Wenig Wissen, große Mühe.