Disons par exemple que nous avons une classe Board
avec de nombreux domaines (par exemple une classe assez complexe). Nous instancier un conseil comme ceci:références d'objets pointant vers le même objet
Board b = new Board();
Notez que pour des raisons de cet exemple, je ne pénètre pas dans tous les paramètres dans le constructeur, bien que dans un exemple réel, ceux-ci peuvent être nécessaires. Si nous devions instancier alors une nouvelle instance de conseil et Le mettre à être comme ceci:
Board c = b;
Ce ne serait pas réellement créer un nouveau conseil d'administration. D'après ce que je sais, c
et b
pointent maintenant vers la même zone de mémoire, le même objet Board. Donc, si je devais changer quelque chose au sujet b
, par exemple être incrémenter un champ entier, comme ceci:
b.count++;//Assume count is an integer field in the Board class.
La valeur c.count
doit être incrémentée aussi bien. Cependant, quand je le fais moi-même, ça ne marche pas. b.count
est incrémenté, mais c.count
ne l'est pas.
Quelqu'un peut-il m'expliquer pourquoi cela se produit? Cet effet est quelque chose que je veux arriver, donc tout conseil sur la façon de mettre en œuvre ce serait très utile (les exemples généraux sont bien).
Pourriez-vous s'il vous plaît poster l'exemple reproduire –
je _really_ aime voir l'exemple. –
Comment chaque réponse a le même exemple ... Je commence à me demander si je ne peux pas voir le code dans la question OP. – dreamcrash