Einführung
Objektklasse: Diese Klasse java.lang.java ist die übergeordnete Klasse, die alle Klassen standardmäßig erben
Drei häufig verwendete Methoden in der Objektklasse : toString () , equal() , hashCode()
1. Selbstbeschreibung des toString()-Methodenobjekts, Selbsteinführung des Objekts
Im Prozess der Selbstbeschreibung des Objekts, aufgrund die Verwendung von get() Das Drucken von Instanzvariablen ist problematischer. Verwenden Sie zur Vereinfachung toString() .
Public String toString(){ Return “学好” + getNo() + “姓名” + getName(); }
System.out.println(s); Das entspricht System.out.println (s.toString());
druckt:
a Den Wert des Basisdatentyps direkt drucken
b . Rufen Sie toString() auf, wenn Sie auf den Datentyp verweisen. Drucken
Wenn die toString()-Methode in der Object-Klasse nicht überschrieben wird, wird das Objekt direkt gedruckt und das auf der Konsole erhaltene Ergebnis ist:
Vollständiger Name@HashCode des Objekts
2. Die Methode equal() muss hashCode() neu schreiben, wenn equal() zwei Objekte vergleicht Inhalt von zwei Objekten; hashCode() ist ein Objekt. Die interne Adresse von ist eine Ganzzahl. Was ist der Unterschied zwischen
== und equal()?
Antwort: ==Der eigentliche Vergleich ist binär, der Basisdatentyp wird mit dem numerischen Wert verglichen und der Referenzdatentyp wird mit der Adresse verglichen
Equals() ist in equal() unterteilt und String der Object-Klasse Das equal() der Klasse, das equal() der Object-Klasse entspricht == dem Vergleich von Referenztypen. Das equal() der String-Klasse überschreibt die equal()-Methode in der Object-Klasse. und vergleicht Literalwerte.
Instanceof bestimmt den Klassennamen, oder Sie können Reflektion verwenden
Der Referenzvariablenname des Objekts. Instanz des Klassennamens ist der Ausdruck, wenn der Referenzvariablenname des Objekts die Klasse oder Basis ist Klassenobjekt des folgenden Klassennamens Der Rückgabewert ist immer noch wahr
Benutzerdefinierte equal()-Methode:
1. Die Typen sind die gleichen
2. Definieren Sie Ihre eigene Vergleichsregeln
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. Die Methode hashCode() wird verwendet, um die Suche zu beschleunigen und die Indexsuche (Abfragealgorithmus, Speicheralgorithmus) zu implementieren
Public int hashCode(){ Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12; }
Zwei Prinzipien von hashCode:
1. Wenn die Methode equal() zweier Objekte vergleicht und der Rückgabewert wahr ist, muss auch ihre Methode hashCode() wahr sein Stellen Sie sicher, dass der Rückgabewert derselbe ist.
2. Die Attribute, die in Objekten verwendet werden, die mit equal() verglichen werden sollen, sollten zur Berechnung von hashCode() verwendet werden.
hashCode() Hash-Algorithmus
Anforderungen:
1. Der Rückgabewert von hashCode() muss gleich sein, und der Rückgabewert von equal() muss ebenfalls identisch sein das gleiche.
2. Schreiben Sie neu, welche Attribute von hashCode() verwendet werden und welche Attribute in der Methode equal() verwendet werden sollen.
Hinweis: hashCode ist derselbe, equal ist nicht unbedingt gleich.
hashCode wird verwendet, um den Ordner zu bestimmen, und equal wird verwendet, um die Datei zu bestimmen.
Wenn Sie die Methode hashCode() nicht überschreiben, wird die Standardmethode hashCode() basierend auf der Adresse des Objekts berechnet (der Schlüsselwert ist die Adresse des Objekts)
Wenn Sie überschreiben hashCode() Die Methode kann nicht verwendet werden, um festzustellen, ob es sich um dasselbe Objekt handelt.
kann System.identityHashCode (den Referenznamen des Objekts) verwenden Objekt.
System.out.println(System.identityHashCode(object reference name));
Wenn kein hashCode() vorhanden ist, wird der hashCode des Objekts aus der Objektadresse berechnet.
System.out.println(object reference name.hashCode());
Hinweis: Ob das Element in der HashSet-Sammlung und dem Löschvorgang vorhanden ist, hängt vom hashCode() und equal des Elements ab ( )
Zusammenfassung
Die oben genannten sind die drei gängigen Methoden der übergeordneten Klasse Object in Java. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen Vielen Dank für Ihre Unterstützung im chinesischen PHP-Netzwerk.
Weitere verwandte Artikel, die gängige Methoden der übergeordneten Klasse Object in Java zusammenfassen, finden Sie auf der chinesischen PHP-Website!