Maison >Java >javaDidacticiel >Résumé des méthodes courantes de la classe parent Object en Java

Résumé des méthodes courantes de la classe parent Object en Java

高洛峰
高洛峰original
2017-01-17 16:56:391190parcourir

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 !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn