Heim >Java >javaLernprogramm >Zusammenfassung gängiger Methoden der übergeordneten Klasse Object in Java

Zusammenfassung gängiger Methoden der übergeordneten Klasse Object in Java

高洛峰
高洛峰Original
2017-01-17 16:56:391186Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn