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.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager