expertenaustausch > comp.lang.* > comp.lang.java

Stefan Ram (11.04.2020, 20:00)
Was ist ein Objekt in Java?

Die Antwort der JLS

Laut der Java Language Specification (JLS) ist ein Objekt
eine Reihung oder ein Exemplar einer Klasse.

Zitat aus der The Java Language Specification, Java SE 12
Edition

|4.3.1 Objects
|An object is a class instance or an array.

Wir können den Speziallfall der Reihungen hier zur
Vereinfachung ignorieren, und erhalten somit die Definition:

Ein Objekt ist ein Exemplar einer Klasse.

Dies wirft nun natürlich die Frage auf, was ein Exemplar
einer Klasse ist.

Es gibt keine einzelne Stelle in der JLS, an der der Begriff
"Exemplar einer Klasse" definiert wird. Vielmehr muß man
alle Aussagen, die an verschiedenen Ort der JLS zu
Exemplaren gemacht werden, zusammen als Definition dieses
Begriffs sehen. Es wäre aber für ein erstes Kennenlernen des
Begriffs nicht hilfreich, alle diese Details hier zu
zitieren! Statt dessen geben wir hier eine vereinfachte
Erklärung mit den wichtigsten Eigenschaften an:

Eine eigene Definition

.------------------------------------------------------.
| Ein Objekt ist eine Entität des Laufzeitmodells, die |
| benannte Variablen und Methoden enthalten kann. |
'------------------------------------------------------'

Eine vereinfachte Definition

.-------------------------------------------------------.
| Ein Objekt ist Stück des Speichers, das Variablen und |
| Methoden enthält. |
'-------------------------------------------------------'

Einige Details

Einige weitere Eigenschaften von Objekte sind:

? Ein Objekt hat eine Klasse.

? Die Klasse eines Objektes legt fest, /welche/ Variablen
und Methoden das Objekt enthält.

? Während des Ablaufs eine Programms können neue Objekte
einer Klasse (Exemplare der Klasse) erzeugt werden.

? Wenn ein Objekt einmal angelegt wurde, so ist seine Klasse
und damit auch die Art und Anzahl der Variablen und
Methoden, die es enthält, unveränderlich festgelegt.

? Die Referenz eines Objektes ist eine Entität des
Laufzeitmodells, welche ihr Objekt eindeutig kennzeichnet
und es erlaubt, das Objekt zu erreichen. Zu jedem Objekt
gehört genau eine Referenz, die aber mehrfach verwendet
werden darf (beispielsweise mehrfach abgespeichert werden
darf).

? Eine Referenz kann in einer Variablen gespeichert werden,
sie kann der Wert eines Ausdrucks sein, sie kann Wert eines
Operands eines Operators sein, sie kann als Wert eines
Operatorausdrucks auftreten, sie kann der Wert eines
Arguments in einem Aufruf sein, sie kann von einer
aufgerufenen Methode als Wert zurückgegeben werden.

? In einem Programm können Variablen eines Objektes
verwendet oder verändert und Methoden eines Objektes
aufgerufen werden. Dabei wird das Objekt durch einen
Ausdruck angegeben, dessen Wert die Referenz des Objektes
ist.

? Wenn ein Objekt im Quelltext durch einen Ausdruck
angegeben wird, dann muß der Typ jenes Ausdrucks ein Obertyp
des Typs des von ihm angegebenen Objekts sein. Der Wert
solch eines Ausdrucks ist stets die Referenz des Objekts,
oft kann man aber zur Vereinfachung denken, daß der Wert des
Ausdrucks das Objekt selber sei.

? Weder Objekte noch Referenzen können im allgemeinen durch
einen bestimmten Text dargestellt werden, insofern können
sie also auch nicht als solche ausgegeben werden. (Jedoch
haben Objekte Textdarstellungen, die ausgegeben werden
können, aber nicht unbedingt immer alle Informationen aus
dem Objekt enthalten.)
Carlos Naplos (21.04.2020, 00:23)
Grob gesagt (feiner kann ich's nicht):

Eine Klasse ist die Beschreibung eines Objektes.

Wird nun ein Objekt zur Klasse initialisiert, so wird der gemäß der
Beschreibung benötigte Speicherplatz reserviert und ein Zeiger darauf
angelegt.

Am 11.04.2020 um 20:00 schrieb Stefan Ram:
[..]
Ähnliche Themen