16_ObjectReference
Code-Dateien
| Dateiname | Aktion |
|---|---|
| CODECode_ClassRoom.zip | Download |
| CODECode_Fenster.zip | Download |
| CODECode_Student.zip | Download |
| CODECode_Urlaub.zip | Download |
PDF-Dokumente
| Dateiname | Aktion |
|---|---|
| PDFFolie_ClassRoom.pdf | Öffnen |
| PDFFolie_Student.pdf | Öffnen |
| PDFUebung_Computer.pdf | Öffnen |
| PDFUebung_Labor.pdf | Öffnen |
| PDFUebung_Wohnung.pdf | Öffnen |
Videos
| Dateiname | Aktion |
|---|---|
| VIDEOVideo_ClassRoom_E | Abspielen |
| VIDEOVideo_Fenster_D | Abspielen |
| VIDEOVideo_Student_D | Abspielen |
| VIDEOVideo_Urlaub_D | Abspielen |
Lernmaterialien
Object Reference
Eine Instanz wird angelegt durch
new Student("Max", 29, true):
Man unterscheidet zwischen:
Instanz - die Eigenschaften und deren Werte
Objectreference - zeigt auf die Instanz
Es können mehrere Objectreferences auf das gleiche Instanz zeigen!
Beispiel
Student a, b, c, d, e;
Die 5 Objectreferences zeigen auf
null!
Student a, b, c, d, e;
a = new Student("Susi", 19, false);
c = new Student("Max", 23, true);
e = new Student("Susi", 19, false);
Auch wenn zwei Instanzen die selben Wete bei den Eigenschaften aufweisen, sind sie zwei unabhängige Instanzen!
Manuelles Abarbeiten
Gegeben ist folgender Code:
Student a, b, c, d, e;
a = new Student("Susi", 19, false);
e = a;
e.setAlter(25);
b = new Student("Max", 23, true);
a = b;
a.setAlter(27);
e = new Student("Werner", 33, false);
d = a;
//c.setAlter(27); c ist null => Null Pointer Exception
d.setAlter(33);
a.setMatura(true);Skizze mit den Objektreferenzen:
Ergebnis:
| Objectreference | name |
alter |
matura |
|---|---|---|---|
a |
"Max" |
33 |
true |
b |
"Max" |
33 |
true |
c |
null |
||
d |
"Max" |
33 |
true |
e |
"Werner" |
33 |
false |
Debugger
Code
public class ObjectReference
{
public void testen()
{
Student a, b, c, d, e;
c = null;
a = new Student("Susi", 19, false);
e = a;
e.setAlter(25);
b = new Student("Max", 23, true);
a = b;
a.setAlter(27);
e = new Student("Werner", 33, false);
d = a;
c.setAlter(27);
d.setAlter(33);
a.setMatura(true);
}
}Haltepunkt setzten:
STOP
NullPointerException
Die Objectreference c zeigt auf null.
Beim Aufruf einer Methode der Objectreference c erhalten
wir eine NullPointerException.
Ergebnis
Wenn keine Objectreference mehr auf eine Instanz zeigt löscht der Garbage Collector die Instanz!
Beispiel: “Susi”
Das Ergebnis kann überprüft werden:
a.printStudent();
b.printStudent();
System.out.println(c);
d.printStudent();
e.printStudent();
}
Object reference
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
Drei Objectreferences zeigen auf die gleiche Instanz
Student@15c1a7ab.