bonsoir,
pourquoi j'arrive pas à permuter mes objets passés en paramètre si j'utilise cette méthode :
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static void Z(A a,A b) { A tmp = a; a=b; b=tmp; }
bonsoir,
pourquoi j'arrive pas à permuter mes objets passés en paramètre si j'utilise cette méthode :
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static void Z(A a,A b) { A tmp = a; a=b; b=tmp; }
Parce que ce que tu passes en paramètre de ta fonction sont les "valeurs" des références de tes objets a et b, et non des références directes à a et b.
En java, tout est passé par valeur, même s'il s'agit de référence d'objets. C'est assez contre-intuitif, surtout lorsqu'on débute.
Quoiqu'il en soit, tes objets sont bien permutés pendant l'exécution de la fonction, mais au retour de celle-ci, les valeurs n'ont pas changé dans la fonction appelante.
comment je dois procéder alors pour pouvoir faire la permutation ?
merci
Tu dois passer en paramètre le tableau qui contient les objets et les index à permuter.
Peux-tu nous expliquer, avec des mots simples, quel est l'intérêt informatique de permuter le contenu de deux variables ?
Il n'y a aucune raison rationnelle de pouvoir faire cela.
Si tu veux que a contienne ci et b contienne ça, donne-leur dès le départ la valeur que tu veux qu'ils aient. Ne commence pas par leur donner l'inverse, puis les échanger ensuite.
Partager