Wie Objekte entstehen
Die Zeile Vehicle minivan = new Vehicle(); deklariert ein Objekt vom Typ Vehicle.
Die Erklärung bewirkt zwei Dinge:
Deklariert eine Variable namens Minivan der Klasse Vehicle.
Erstellt eine physische Kopie des Objekts und weist dem Minivan mithilfe des neuen Operators eine Referenz darauf zu.
Der neue Operator weist einem Objekt dynamisch Speicher zu und gibt einen Verweis darauf zurück.
Die Referenz ist mehr oder weniger die Adresse des Objekts im Speicher, das von new.
Die Referenz wird dann in einer Variablen gespeichert.
In Java müssen alle Objekte einer Klasse dynamisch zugewiesen werden.
Die beiden Schritte der Anleitung können umgeschrieben werden, um jeden Schritt einzeln anzuzeigen.
Fahrzeug-Minivan; // einen Verweis auf das Objekt deklarieren.
Minivan = neues Fahrzeug(); // weist ein Fahrzeugobjekt zu.
Die erste Zeile deklariert Minivan als Referenz auf ein Objekt vom Typ Fahrzeug.
Minivan ist eine Variable, die auf ein Objekt verweisen kann, aber kein Objekt ist.
Der Minivan verweist derzeit nicht auf ein Objekt.
Die nächste Zeile erstellt ein neues Fahrzeugobjekt und weist dem Minivan eine Referenz darauf zu.
Jetzt ist der Minivan mit einem Objekt verknüpft.
Referenzvariablen und Zuweisung
Objektreferenzvariablen verhalten sich bei Zuweisungsoperationen anders als Variablen vom primitiven Typ.
Bei Variablen vom primitiven Typ erhält die linke Variable eine Kopie des Werts der rechten Variablen.
In Objektreferenzvariablen verweist die Variable auf der linken Seite auf dasselbe Objekt wie die Variable auf der rechten Seite.
Dies kann zu unerwarteten Ergebnissen führen.
Beispiel:
Fahrzeug car1 = neues Fahrzeug();
Fahrzeug auto2 = auto1;
car1 und car2 verweisen auf dasselbe Objekt.
Änderungen, die über car1 oder car2 vorgenommen werden, wirken sich auf dasselbe Objekt aus.
Wann:
car1.mpg = 26;
System.out.println(car1.mpg);
System.out.println(car2.mpg);
Ausfahrt 26.
car1 und car2 verweisen auf dasselbe Objekt, sind aber nicht auf andere Weise verknüpft.
Nachträgliche Zuweisungen an Wagen2 haben keinen Einfluss auf Wagen1.
Beispiel:
Fahrzeug car1 = neues Fahrzeug();
Fahrzeug auto2 = auto1;
Fahrzeug car3 = neues Fahrzeug();
car2 = car3;
car2 verweist jetzt auf dasselbe Objekt wie car3.
Das von car1 referenzierte Objekt bleibt unverändert.
以上是Objekterstellung的详细内容。更多信息请关注PHP中文网其他相关文章!