„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 |
---|---|
|
Gibt eine Zeichenfolgendarstellung des Objekts zurück. |
|
Ein Methodenpaar zum Vergleichen von Objekten. |
|
Gibt ein spezielles Objekt zurück, das die aktuelle Klasse beschreibt. |
|
Methoden zum Steuern des Zugriffs auf ein Objekt aus verschiedenen Threads. Zur Thread-Synchronisation. |
|
Mit dieser Methode können Sie native Nicht-Java-Ressourcen freigeben: Dateien, Streams usw. schließen. |
|
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 |
---|---|
|
|
|
|
|
|
„Ja, ich verwende das regelmäßig. Besonders wenn ich ein Programm schreibe oder nach Fehlern suche. Es ist eine nützliche Operation.“
GO TO FULL VERSION