On dit peut être pas pointeur, mais enfin le terme donne bien, à ceux qui viennent du C, une image correcte de ce qui se passe, il me semble.
Il est cependant vrai que le bon terme en java est
référence.
Et pour ceux qui ne connaissent pas le C, le passage en paramètre d'objets équivaut à passer, non pas cet objet lui même, mais comme une sorte de flèche vers cet objet.
Ainsi, lorsque tu désignes un tableau, tu utilises en fait une sorte de flèche vers ce tableau, non le tableau lui même, et si tu désignes un String, pareil.
Quand tu modifies un élément du tableau paramètre, tu modifies non pas le paramètre, mais un contenu désigné par ce paramètre ; la sorte de flèche pointeur référence reste donc inchangé.
Mais lorsque tu modifie le String paramètre, tu modifies le paramètre lui même ; la sorte de flèche change. Sa visibilité étant permise seulement dans le corps de la méthode, ce changement n'est visible que dans le corps de cette méthode, est invisible à l'extérieur.
Voilà... est-ce plus clair ?
Autre explication pour approfondir :
Les objets sont manipulés avec des références.
Partager