Wie Objekte erstellt werden
Die Zeile Vehicle minivan = new Vehicle(); deklariert ein Objekt vom Typ Fahrzeug.
Die Anweisung 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, der von new zugewiesen wurde.
Die Referenz wird dann in einer Variablen gespeichert.
In Java müssen alle Objekte in einer Klasse dynamisch zugewiesen werden.
Die beiden Schritte der Anweisung können umgeschrieben werden, um jeden Schritt einzeln anzuzeigen.
Fahrzeug-Minivan; // eine Referenz 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 primitiven Typs.
In Variablen vom primitiven Typ erhält die Variable links eine Kopie des Werts der Variablen rechts.
In Objektreferenzvariablen verweist die Variable links auf dasselbe Objekt wie die Variable rechts.
Dies kann zu unerwarteten Ergebnissen führen.
Beispiel:
Fahrzeug car1 = neues Fahrzeug();
Fahrzeug car2 = car1;
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);
Es wird Ausgang 26 geben.
car1 und car2 verweisen auf dasselbe Objekt, sind aber nicht auf andere Weise verknüpft.
Nachträgliche Zuweisungen an Auto2 haben keinen Einfluss auf Auto1.
Beispiel:
Fahrzeug car1 = neues Fahrzeug();
Fahrzeug car2 = car1;
Fahrzeug car3 = neues Fahrzeug();
car2 = car3;
car2 verweist jetzt auf dasselbe Objekt wie car3.
Das von car1 referenzierte Objekt bleibt unverändert.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3