Einführung
Objektklasse: Diese Klasse java.lang.java ist die übergeordnete Klasse, die standardmäßig von allen Klassen geerbt wurde.
Drei häufig verwendete Methoden in der Objektklasse: toString() , equal() , hashCode()
1. Selbstbeschreibung des TOString () Method-Objekts und Selbstinführung des Objekts
Während der Selbstbeschreibung eines Objekts, da es problematisch ist, Instanzvariablen mithilfe der get() -Methode zu drucken, wird toString() der Einfachheit halber verwendet.
Public String toString () {return "Well Learn" + getno () + "Name" + getName ();} System.out.println(s); entspricht System.out.println(s.toString());
Drucken:
A. Drucken Sie seinen Wert direkt aus, wenn der Basisdatentyp
B. Rufen Sie toString() an, wenn Sie sich auf den Datentyp beziehen und drucken
Wenn die Methode toString() in der Objektklasse nicht umschreibt, drucken Sie das Objekt direkt aus und das in der Konsole erhaltene Ergebnis lautet:
HashCode mit vollständigem Namen @ Objekt enthält
2. Umschreiben von Equals () Methode Equals () muss HashCode () neu schreiben.
Equals() vergleicht den Inhalt von zwei Objekten oder den beiden Objekten; hashCode() ist die interne Adresse des Objekts und eine Ganzzahl.
== Differenz zwischen Equals ()?
Antwort: == Der wesentliche Vergleich ist binär, der grundlegende Datentyp vergleicht numerische Werte und der Referenzdatentyp vergleicht die Adresse
Equals() ist in equals() der Objektklasse und equals() der String -Klasse unterteilt. equals() der Objektklasse ist äquivalent zu ==, um den Referenztyp zu vergleichen; equals() der String -Klasse überschreibt equals() -Methode in der Objektklasse und verglichen die wörtlichen Werte.
Instanz des Klassennamens bestimmt oder kann Reflexion verwenden
Der Referenzvariablenname Instanz des Klassennamens Ausdruck des Objekts, wenn der Name des Referenzvariablens des Objekts das Objekt der Klasse oder der Basisklasse ist, deren Rückgabewert immer noch stimmt.
Benutzerdefinierte equals() Methode:
1. Der gleiche Typ
2. Definieren Sie Ihre eigenen Vergleichsregeln
public boolean Equals (Objektobjekt) {// Schreiben Sie die Equals () -Methode von EqualStest Equalstest = (Equalstest) Objekt; if (Equalstest.getClass () == Equalstest.class) {//?????????? true;} else {return false;}} else {return false;}}3. Die Methode von HashCode () wird verwendet, um die Such- und Implementierung der Indexsuche zu beschleunigen (Abfragealgorithmus, Speicheralgorithmus).
Public int HashCode () {return this.name.hashcode ()*13 + neues Interger (getage) .hashCode ()*12;}Zwei Prinzipien des Hashcode:
1. Wenn der Rückgabewert der beiden Objekte equals() -Methoden wahr ist, müssen ihre hashCode() -Methoden auch sicherstellen, dass der Rückgabewert gleich ist.
2. Verwenden Sie equals() um die im Objekt verwendeten Eigenschaften zu vergleichen, und alle sollten zur Berechnung hashCode() verwendet werden.
HashCode () Hash -Algorithmus
brauchen:
1. Der Rückgabewert von hashCode() ist der gleiche und der Rückgabewert equals() muss ebenfalls gleich sein.
2. Schreiben Sie neu, welche Attribute für hashCode() und welche Attribute in equals() verwendet werden sollen.
HINWEIS: HashCode ist der gleiche, gleich ist nicht unbedingt der gleiche.
HashCode wird verwendet, um Ordner zu beurteilen, und Equals wird verwendet, um Dateien zu beurteilen.
Wenn hashCode() nicht überschrieben ist, wird die Standard -HashCode () -Methode basierend auf der Adresse des Objekts gefunden (der Schlüsselwert ist die Adresse des Objekts).
Wenn Sie hashCode() -Methode neu schreiben, kann es nicht verwendet werden, um festzustellen, ob es sich um dasselbe Objekt handelt.
Sie können System.identityHashCode verwenden. IdentityHashCode (der Referenzname des Objekts) Wenn der HashCode derselbe ist, ist es dasselbe Objekt.
System.out.println(System.identityHashCode(对象的引用名));
Wenn es keinen hashCode() gibt, wird der Hashcode seines Objekts von der Objektadresse berechnet.
System.out.println(对象引用名.hashCode());
Hinweis: Ob die Elemente in der Hashset -Sammlung vorhanden sind und die Methoden zum Löschen von Operationsabhängigkeiten sind hashCode() und equals() des Elements.
Zusammenfassen
Die oben genannten sind drei gängige Methoden des übergeordneten Objekts in Java, die für Sie zusammengestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung für Wulin.com.