Comment les objets sont créés
La ligne Vehicle minivan = new Vehicle(); déclare un objet de type Vehicle.
La déclaration 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 du nouvel opérateur.
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 = véhicule neuf (); // 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, 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.
Maintenant, 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 car2 = car1;
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 car2 = car1;
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é.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!