Introduction
Classe d'objets: cette classe java.lang.java est la classe parent héritée par toutes les classes par défaut.
Trois méthodes couramment utilisées dans la classe d'objets: toString() , equal() , hashCode()
1. Auto-description de l'objet de méthode toString () et auto-introduction de l'objet
Pendant l'auto-description d'un objet, car il est difficile d'imprimer des variables d'instance à l'aide de la méthode get() , toString() est utilisée pour la simplicité.
Public String toString () {return "Learn bien" + getno () + "name" + getName ();} System.out.println(s); est équivalent à System.out.println(s.toString());
Impression:
un. Imprimer sa valeur directement lorsque le type de données de base
né Appelez toString() lors de la référence au type de données et à l'impression
Si toString() dans la classe d'objets n'est pas réécrite, imprimez directement l'objet et le résultat obtenu dans la console est:
HashCode contenant le nom complet @ objet
2. La réécriture de la méthode equals () equals () doit réécrire HashCode ().
Equals() compare le contenu de deux objets, ou les deux objets; hashCode() est l'adresse interne de l'objet et est un entier.
== Différence entre equals ()?
Réponse: == La comparaison essentielle est binaire, le type de données de base compare les valeurs numériques et le type de données de référence compare l'adresse
Equals() est divisé en equals() de la classe d'objets et equals() de la classe de chaîne. equals() de la classe d'objets est équivalent à == comparant le type de référence; equals() de la classe de chaîne remplace equals() dans la classe d'objets, comparant les valeurs littérales.
Instanceof détermine le nom de classe, ou peut utiliser la réflexion
Le nom de la variable de référence de l'objet Instance de nom de classe Expression, si le nom de la variable de référence de l'objet est l'objet de classe ou de classe de base dont la valeur de retour est toujours vraie.
Méthode personnalisée equals() :
1. Le même type
2. Définissez vos propres règles de comparaison
Public Boolean Equals (Object Object) {// Réécrivez la méthode equals () de l'objet EqualStSTest EqualSTest = (EqualStest) objet; if (equalstest.getClass () == Equalstest.class) {//?????????????????if(if(this.name==equalstest) · nom :) Eh à true;} else {return false;}} else {return false;}}3. La méthode HashCode () est utilisée pour accélérer la recherche et implémenter la recherche d'index (algorithme de requête, algorithme de stockage)
Public int hashcode () {return this.name.hashcode () * 13 + nouvel interger (getage) .hashcode () * 12;}Deux principes de HashCode:
1. Lorsque la valeur de retour des deux objets equals() méthodes est vraie, leurs méthodes hashCode() doivent également garantir que la valeur de retour est la même.
2. Utiliser equals() pour comparer les propriétés utilisées dans l'objet, et toutes doivent être utilisées pour calculer hashCode() .
algorithme de hashcode ()
besoin:
1. La valeur de retour de hashCode() est la même, et la valeur de retour equals() doit également être la même.
2. Réécrivez les attributs à utiliser hashCode() et les attributs à utiliser dans equals() .
Remarque: HashCode est le même, égal n'est pas nécessairement le même.
HashCode est utilisé pour juger les dossiers et égal est utilisé pour juger les dossiers.
Si hashCode() n'est pas remplacée, la méthode HashCode () par défaut est trouvée en fonction de l'adresse de l'objet (la valeur de clé est l'adresse de l'objet)
Si vous réécrivez hashCode() , il ne peut pas être utilisé pour déterminer s'il s'agit du même objet.
Vous pouvez utiliser System.identityHashCode (le 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(对象的引用名));
S'il n'y a pas hashCode() , le code de hash de son objet est calculé par l'adresse de l'objet.
System.out.println(对象引用名.hashCode());
Remarque: si les éléments existent dans la collection HashSet et les méthodes de suppression des dépendances d'opération sont hashCode() et equals() de l'élément.
Résumer
Ce qui précède sont trois méthodes courantes d'objet parent en Java compilées pour vous. J'espère que cela vous sera utile. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à Wulin.com.