Return d'une fonction static java

Résolu
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

  1. Modérateur
    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
    1. 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
    2. Modérateur
      static permet juste de déterminer que le traitement dépend d'aucun objet, ça n'a aucun rapport avec ce problème !
      0