Return d'une fonction static java

Résolu
IMssMl -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 ; }
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 !
0
IMssMl
 
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 !!
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
static permet juste de déterminer que le traitement dépend d'aucun objet, ça n'a aucun rapport avec ce problème !
0