Alle Methoden der Object-Klasse sowie weitere Informationen zur toString()-Methode – 1

„Hallo, Amigo!“

"Hallo!"

„Heute werden wir uns mit der Object-Klasse befassen.
Sie kennen sie bereits und wissen, dass Object die Basisklasse für alle Klassen ist. Sie enthält praktisch keine Daten, verfügt aber über mehrere Methoden.“

„Warum braucht es Methoden? Erstellt jemand wirklich Instanzen der Object-Klasse?“

„Betrachten Sie es so: Die Methoden in der Object-Klasse sind in allen Klassen gleich. Mit anderen Worten: Die Entwickler von Java haben mehrere Methoden identifiziert, die ihrer Meinung nach jede Klasse haben sollten, und sie der Object-Klasse hinzugefügt.“

„Und in Kombination mit Polymorphismus (der Fähigkeit, die Methoden der Object-Klasse in abgeleiteten Klassen zu überschreiben) wird dies zu einem sehr leistungsstarken Werkzeug.“

„Mal sehen, was diese Methoden sind:“

Methode Beschreibung
public String toString()
Gibt eine Zeichenfolgendarstellung des Objekts zurück.
public native int hashCode()
public boolean equals(Object obj)
Ein Methodenpaar zum Vergleichen von Objekten.
public final native Class getClass()
Gibt ein spezielles Objekt zurück, das die aktuelle Klasse beschreibt.
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)
public final void wait(long timeout, intnanos)
public final void wait()
Methoden zum Steuern des Zugriffs auf ein Objekt aus verschiedenen Threads. Zur Thread-Synchronisation.
protected void finalize()
Mit dieser Methode können Sie native Nicht-Java-Ressourcen freigeben: Dateien, Streams usw. schließen.
protected native Object clone()
Mit dieser Methode können Sie ein Objekt klonen: Es wird ein Duplikat des Objekts erstellt.

„Diese Methoden lassen sich in 6 Gruppen einteilen. Einige davon kennen Sie bereits, den Rest werden wir in den folgenden Lektionen kennenlernen.“

„Aus irgendeinem Grund sehe ich hier nichts Nützliches.“

„Amigo! Wenn diese Methoden nicht wichtig wären, hätten sie sie nicht jedem einzelnen Objekt hinzugefügt! Ich würde Ihnen daher raten, sich genauer anzusehen, was das ist und warum sie benötigt werden. Wenn sie Ihnen unwichtig erscheinen , dann hast du entweder etwas nicht verstanden oder etwas nicht richtig verstanden.“

„OK. Ich werde aufmerksam zuhören.“

„Beginnen wir mit der toString()-Methode.

„Mit dieser Methode können Sie eine Textbeschreibung eines beliebigen Objekts erhalten. Die Implementierung in der Object-Klasse ist sehr einfach:“

return getClass().getName() + "@" + Integer.toHexString(hashCode());

„getClass() und hashCode() sind ebenfalls Methoden der Object-Klasse.
Der Aufruf dieser Methode führt normalerweise zu einem Ergebnis wie diesem:“

java.lang.Object@12F456

„Und was nützt eine solche Beschreibung?“

„Anhand dieser Beschreibung können Sie die Klasse des Objekts erkennen, für das die Methode aufgerufen wurde. Sie können auch zwischen Objekten unterscheiden; verschiedene Objekte haben nach dem @-Symbol unterschiedliche Ziffern.“

„Der wahre Wert dieser Methode liegt jedoch woanders. Diese Methode kann in jeder Klasse überschrieben werden, um eine detailliertere oder passendere Objektbeschreibung zurückzugeben.“

„Aber es gibt noch mehr. Da Sie für jedes Objekt eine Textdarstellung erhalten können, hat Java es Ihnen ermöglicht, Unterstützung für das ‚Hinzufügen‘ von Strings zu Objekten zu implementieren.
Schauen Sie es sich an:“

Code Was wirklich passiert
int age = 18;
System.out.println("Age is " + age);

String s = String.valueOf(18);
String result = "Age is " + s;
System.out.println(result);
Student st = new Student("Vincent");
System.out.println("Student is " + st);

Student st = new Student("Vincent");
String result = "Student is " + st.toString();
System.out.println(result);
Car car = new Porsche();
System.out.println("My car is " + car);

Car car = new Porsche();
String result = "My car is " + car.toString();
System.out.println(result);

„Ja, ich verwende das regelmäßig. Besonders wenn ich ein Programm schreibe oder nach Fehlern suche. Es ist eine nützliche Operation.“