Return d'une fonction static java [Résolu/Fermé]

Signaler
-
Messages postés
16179
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 janvier 2021
-
Bonjour,
cette fonction fait permuter 4 arguments . si On l'applique dans le contexte suivant :
String a="bon" ; String b="jour" ; int c=3 ; int d =4 ;
permuter(a,b,c,d) ;
on aura avoir :
bon ; jour; 3 ;4 cad rien n'est changé est ce que ca est due au l'utilisation de static ou passage par valeur !!!

public static void permuter (String s1, String s2, int x1, int x2){
String tmp1=s1 ; s1=s2 ; s2=tmp1 ;
int tmp2=x1 ; x1=x2 ; x2=tmp2 ; }

1 réponse

Messages postés
16179
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 janvier 2021
2 775
En effet, le problème vient du passage des données en Java.
C'est un passage par référence, c'est à dire que les s1 et s2 sont bien permutés, mais ils ne correspondent pas physiquement à a et b (idem pour x1,x2 et c,d) donc quand tu sors de la fonction a,b,c,d n'ont jamais été modifiés !
et l'utilisation de Static n'influence pas sur la modification . cad c'est j'ai passé les vars par reference , j'aurais une bonne reponse !!
Messages postés
16179
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 janvier 2021
2 775
static permet juste de déterminer que le traitement dépend d'aucun objet, ça n'a aucun rapport avec ce problème !