Introduction
Classe Object : Cette classe java.lang.java est la classe parent dont toutes les classes héritent par défaut
Trois méthodes couramment utilisées dans la classe Object : toString () , égal() , hashCode()
1. Auto-description de l'objet de la méthode toString(), auto-introduction de l'objet
Dans le processus d'auto-description de l'objet, en raison de l'utilisation de get() Il est plus difficile d'imprimer des variables d'instance. Pour plus de simplicité, utilisez toString() .
Public String toString(){ Return “学好” + getNo() + “姓名” + getName(); }
System.out.println(s); qui équivaut à System.out.println (s.toString());
imprime :
a Imprime directement la valeur du type de données de base
b. . Appelez toString() lors du référencement du type de données. Impression
Si la méthode toString() de la classe Object n'est pas remplacée, l'objet est imprimé directement et le résultat obtenu sur la console est :
.Nom complet du package@hashCode de l'objet
2. La méthode equals() doit réécrire hashCode() lors de la réécriture de
Equals() compare deux objets, ou le. contenu de deux objets ; hashCode() est un objet L'adresse interne de est un entier. Quelle est la différence entre
== et égal(e) ?
Réponse : ==La comparaison réelle est binaire, le type de données de base est comparé à la valeur numérique et le type de données de référence est comparé à l'adresse
Equals() est divisé en égal() Et String de la classe Object L'equals() de la classe, l'equals() de la classe Object est équivalent à == la comparaison des types références l'equals() de la classe String remplace la méthode equals() dans la classe Object, et compare les valeurs littérales.
Instanceof détermine le nom de la classe, ou vous pouvez utiliser la réflexion
Le nom de la variable de référence de l'objet instanceof le nom de la classe est l'expression, si le nom de la variable de référence de l'objet est la classe ou la base objet de classe du nom de classe suivant La valeur de retour est toujours vraie
Méthode equals() personnalisée :
1. Les types sont les mêmes
2. Définissez le vôtre. règles de comparaison
public boolean equals(Object object){ //重写Object的equals()方法 EqualsTest equalsTest = (EqualsTest) object; if(equalsTest.getClass() == EqualsTest.class){ //??????????? if((this.name==equalsTest.name)&&(this.price== qualsTest.price)){ return true; }else{ return false; } }else{ return false; } }
3. La méthode hashCode() est utilisée pour accélérer la recherche et mettre en œuvre la recherche d'index (algorithme de requête, algorithme de stockage)
Public int hashCode(){ Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12; }
Deux principes de hashCode :
1. Lorsque la méthode equals() de deux objets se compare et que la valeur de retour est vraie, alors leur méthode hashCode() doit également assurez-vous que la valeur de retour est la même.
2. Les attributs utilisés dans les objets à comparer à l'aide d'equals() doivent être utilisés pour calculer hashCode().
hashCode() Algorithme de hachage
Exigences :
1. La valeur de retour de hashCode() doit être la même et la valeur de retour d'equals() doit également être le même.
2. Réécrivez quels attributs sont utilisés par hashCode() et quels attributs doivent être utilisés dans la méthode equals().
Remarque : hashCode est le même, égal n'est pas nécessairement le même.
hashCode est utilisé pour déterminer le dossier, et égal est utilisé pour déterminer le fichier.
Si vous ne remplacez pas la méthode hashCode(), la méthode hashCode() par défaut est calculée en fonction de l'adresse de l'objet (la valeur clé est l'adresse de l'objet)
Si vous remplacez hashCode() La méthode ne peut pas être utilisée pour déterminer s'il s'agit du même objet.
peut utiliser System.identityHashCode (nom de référence de l'objet). Si le hashCode est le même, c'est le même objet. .
System.out.println(System.identityHashCode(object reference name));
S'il n'y a pas de hashCode(), le hashCode de l'objet est calculé à partir de l'adresse de l'objet.
System.out.println(object reference name.hashCode());
Remarque : Le fait que l'élément existe dans la collection HashSet et l'opération de suppression dépend du hashCode() de l'élément et est égal à ( )
Résumé
Voici les trois méthodes courantes de la classe parent Object en Java. J'espère que cela vous sera utile. Si vous avez des questions, vous pouvez laisser un message. pour communiquer. Merci pour votre soutien au réseau PHP chinois.
Pour plus d'articles connexes résumant les méthodes courantes de la classe parent Object en Java, veuillez faire attention au site Web PHP chinois !