Eine Zuweisungsanweisung verlangt vom Computer die Durchführung von zwei Schritten, in Reihenfolge:
=
=
Hier ist die Zuweisungsanweisung, die wir betrachten:
str = new String( "Elementar, mein lieber Watson!" );
Sie funktioniert folgendermaßen:
1. Auswerten des Ausdrucks.
Der Ausdruck
new String( "Elementar, mein lieber Watson!" )
wird ausgewertet. Das konstruiert (erzeugt) ein neues Objekt.
Eine Konstruktormethode eines Objekts hat den gleichen Namen wie die Klasse und wird mit dem new
-Operator verwendet. Manchmal (wie in diesem Beispiel) benötigt ein Konstruktor Parameter.
Eine Referenz auf ein Objekt beschreibt seinen Ort im Speicher. Sie ermöglicht es der Java Virtuellen Maschine das Objekt zu finden.
2. Speichern des Werts in der Variablen.
Im zweiten Schritt wird die Referenz in der Referenzvariablen gespeichert:
str = Die Referenz auf das Stringobjekt, das gerade erzeugt wurde
Jetzt, wann immer das Programm auf das Objekt verweisen muss, verwendet es die Variable
str
.
Eine Referenz ist wie eine Handynummer. Jemand, der Eure Telefonnummer hat, kann Euch eine Mitteilung schicken und Euch auffordern etwas zu tun, unabhängig davon, wo Ihr gerade seid. Denkt an Euren Boss, der Euch anruft, und Euch eine Mitteilung schickt. "Fangen Sie an den Bericht zu schreiben!" Das ist wie das Verwenden einer Objektreferenz, um ein Objekt aufzufordern eine Methode auszuführen.
Manchmal wird die Variable str
als Stringobjekt bezeichnet.
Das ist schludrig und kann zu Verwirrung führen.
Das Objekt, die Referenzvariable und die Referenz sind drei verschiedene Dinge.
Seid Ihr und Eure Handynummer zwei verschiedene Dinge?