Objekt |
ein Exemplar, eine Instanz einer Klasse
|
| |
Erzeugung |
mit dem new-Operator
|
|
|
| |
Referenz |
Verweis, Zeiger auf ein Objekt
|
| |
new |
liefert einen Verweis, eine Referenz auf ein Objekt
|
| |
|
Ein Objekt wird eindeutig durch eine Referenz identifiziert.
|
| |
|
Referenzen können ausschließlich mit dem new-Operator erzeugt
werden.
|
| |
Variablen |
mit einem Referenztyp (class, interface, array) enthalten immer eine Referenz auf ein Objekt
|
|
X x1 = new X();
X x2;
...
x2 = new X();
|
| |
|
Die Variablen eines Objektes bilden den Zustand des Objekts.
|
|
Die Variablen eines Objektes können von den Methoden
des Objekts gelesen und verändert werden.
|
| |
Initialisierung |
von Referenzvariablen mit der ungültigen Referenz null
|
|
|
| |
Dereferenzieren |
mit . -Notation
|
|
X x1;
... x1.d ...
... x1.getD() ...
|
| |
Überprüfung |
immer auf ungültiges Dereferenzieren
|
|
X x1 = null;
x1.setD(42);
|
|
|
| |
Vergleiche |
auf Referenzen
|
|
X x1, x2;
... (x1 == x2) ...
|
|
Die Referenzen werden verglichen, nicht die Zustände der Objekte
|
| |
Zuweisungen |
mit Variablen mit einem Referenz-Typ kopieren immer nur die Referenz auf
ein Objekt.
|
|
X x1,x2;
x1 = new X();
x2 = x1;
x2.setD(42);
... x1.getD() ...
|
| |
|
Nur Zeiger werden kopiert, keine Inhalte
|
| |
Speicherfreigabe |
von Objekten implizit, automatisch, wenn keine Referenz mehr existiert.
|
|
|
| |
Object
|
eine vordefinierte Klasse.
Alle Klassen sind Unterklassen der Klasse Object
Alle Klassen enthalten mindestens die Methoden aus der Klasse Object
|
| |
|
Objekte sind etwas Dynamisches.
Objekte existieren erst zur Laufzeit.
|