Comment les objets sont créés
La ligne Vehicle minivan = new Vehicle(); déclare un objet de type Vehicle.
L'instruction fait deux choses :
Déclare une variable appelée minifourgonnette de classe Véhicule.
Crée une copie physique de l'objet et attribue une référence à la mini-fourgonnette à l'aide de l'opérateur new.
Le nouvel opérateur alloue dynamiquement de la mémoire pour un objet et renvoie une référence à celui-ci.
La référence est plus ou moins l'adresse de l'objet en mémoire allouée par new.
La référence est ensuite stockée dans une variable.
En Java, tous les objets d'une classe doivent être alloués dynamiquement.
Les deux étapes de l'instruction peuvent être réécrites pour afficher chaque étape individuellement.
Véhicule minifourgonnette ; // déclare une référence à l'objet.
minifourgonnette = nouveau véhicule (); // alloue un objet Vehicle.
La première ligne déclare minivan comme référence à un objet de type Véhicule.
minivan est une variable qui peut référencer un objet, mais n'est pas un objet.
Pour l'instant, le minivan ne fait référence à aucun objet.
La ligne suivante crée un nouvel objet Véhicule et lui attribue une référence à la mini-fourgonnette.
Désormais, la mini-fourgonnette est liée à un objet.
Variables de référence et affectation
Les variables de référence d'objet agissent différemment des variables de type primitif dans les opérations d'affectation.
Dans les variables de type primitif, la variable de gauche reçoit une copie de la valeur de la variable de droite.
Dans les variables de référence d'objet, la variable de gauche fait référence au même objet que la variable de droite.
Cela peut entraîner des résultats inattendus.
Exemple:
Véhicule car1 = nouveau véhicule ();
Véhicule voiture2 = voiture1;
car1 et car2 font référence au même objet.
Les modifications apportées via car1 ou car2 affectent le même objet.
Quand:
car1.mpg = 26;
System.out.println(car1.mpg);
System.out.println(car2.mpg);
Il y aura la sortie 26.
car1 et car2 font référence au même objet, mais ne sont pas liés par d'autres moyens.
Les affectations ultérieures à car2 n'affectent pas car1.
Exemple:
Véhicule car1 = nouveau véhicule ();
Véhicule voiture2 = voiture1;
Véhicule car3 = nouveau véhicule ();
voiture2 = voiture3;
car2 fait désormais référence au même objet que car3.
L'objet référencé par car1 reste inchangé.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3