Java Reference
In-Depth Information
Bruch b;
Arbeitsspeicher
Abbildung 5.8
Definition einer Variablen vom Typ »Bruch«
5
Wie
Abbildung 5.8
zeigt, ist mit dieser Anweisung nur ein Bezeichner definiert, der in
der Lage ist, auf eine Instanz der Klasse
Bruch
zu verweisen. Man nennt sie deshalb auch
Referenzvariable
. Im Gegensatz zu den bisher verwendeten Typen ist damit aber im
Hauptspeicher noch kein Platz für die einzelnen Attribute
zaehler
und
nenner
reser-
viert. Auch die Adresse, an der sich die Instanz befindet, steht noch nicht fest. Es exis-
tiert im Hauptspeicher noch keine Instanz. Die Variable
b
hat zu diesem Zeitpunkt den
vordefinierten Wert
null
. Dieser Wert beschreibt sehr gut, dass die Variable noch keine
Instanz referenziert. So kann z. B. in einer
if
-Anweisung
if (b != null) ...
überprüft werden, ob sich hinter einem Bezeichner tatsächlich schon eine Instanz einer
Klasse verbirgt. Nur wenn die Bedingung
(b
!=
null)
den Wert
true
zurückliefert, exis-
tiert bereits eine Instanz der Klasse
Bruch
, und nur dann kann auch auf die Attribute die-
ser Instanz zugegriffen werden.
Eine neue Instanz der Klasse
Bruch
erzeugen Sie mit dem Operator
new
(
Abbildung 5.9
):
new Bruch();
new Bruch();
zaehler
nenner
Arbeitsspeicher
Bruch
Abbildung 5.9
Erzeugen einer Instanz des Typs »Bruch«
Wie Sie aus
Abbildung 5.9
entnehmen können, fehlt hier die Verbindung zu einem
Bezeichner, über den Sie auf das Objekt zugreifen können. Deshalb werden in der Regel
die beiden Anweisungen
Bruch
b;
und
new
Bruch();
zu einer Anweisung der Form
Bruch
b
=
new
Bruch();
verbunden (
Abbildung 5.10
).