La fonction égale a été définie dans l'objet de classe de base. Le code source est le suivant.
Copiez le code comme suit :
public booléen égal (Objet obj) {
return (this == obj);
}
Il ressort du code source que la méthode par défaut equals() est cohérente avec "==". Ce sont des références aux objets comparés, et non aux valeurs des objets (cela est cohérent avec notre bon sens selon lequel equals() est). utilisé pour comparer des objets. La raison est que la plupart des classes en Java ont remplacé la méthode equals(). Voici un exemple de la classe String. Le code source de la méthode equals() de la classe String est le suivant :)
[Java]
Copiez le code comme suit :
/** La valeur est utilisée pour le stockage des caractères */
valeur de caractère finale privée[] ;
/** Le décalage est le premier index du stockage utilisé */.
compensation int finale privée ;
/** Le nombre est le nombre de caractères dans la chaîne */.
décompte final privé;
[Java] voir plaincopyprint ?
public booléen égal (Objet anObject) {
if (this == anObject) {
renvoie vrai ;
}
if (instance d'objet de chaîne) {
String anotherString = (String)anObject;
int n = nombre ;
if (n == anotherString.count) {
char v1[] = valeur;
char v2[] = anotherString.value;
int je = décalage ;
int j = autreString.offset;
tandis que (n-- != 0) {
si (v1[i++] != v2[j++])
renvoie faux ;
}
renvoie vrai ;
}
} //www.software8.co
renvoie faux ;
}
Equals() de la classe String est très simple, il convertit simplement la classe String en un tableau de caractères et la compare petit à petit.
En résumé, lorsque nous utilisons la méthode equals(), nous devons faire attention à :
1. Puisque equals() est appliqué à un objet personnalisé, vous devez remplacer la méthode equals() du système dans la classe personnalisée.
2. Un peu de connaissances, de gros ennuis.