Variable temporaire java!

Fermé
tatata01 - 20 janv. 2013 à 15:44
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 20 janv. 2013 à 16:46
Bonjour,
Je souhaiterai savoir quelle est la difference entre ces deux fonction...
Le A tmp me trouble! J'ai compris la deuxieme qui sert a echanger les valeurs de c et d.
Je pensais que echange(A x, A y) servait juste a echanger les valeurs des variable des objet rentré en argument.
Merci de votre reponse!
A x1 = new A();
A x2 = new A();
A.echange(x1, x2);


public static void echange(A x, A y) {
A tmp = x;
x = y;
y = tmp;
}

public void echange(){
int tmp = c;
c = d;
d = tmp;
}


A voir également:

1 réponse

Mint14 Messages postés 4 Date d'inscription dimanche 20 janvier 2013 Statut Membre Dernière intervention 23 février 2013 1
20 janv. 2013 à 16:34
salut....
pour la première fonction tu a x1 et x2 qui sont deux objets crée de la class A
tu doit avoir un constructeur par defaut dans la Class A comme suite :
------------------------------------------------------------------------
public class A {

public A {
<--- #"constructeur par defaut"
}

}
------------------------------------------------------------------------

allors 'A.echange(x1, x2)' change le contenu de deux objets, tandis que la deuxieme fonction change le contenu de deux variable (pour ton exemple c'est c et d)

bonne chance.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
20 janv. 2013 à 16:46
Attention : on ne manipule pas les objets ici, mais leurs références ! x1 et x2 ne seront jamais modifiés par la méthode échange, c'est les références x et y qui sont permutés, sans aucune conséquences pour les références x1 et x2, contrairement à c et d pour lesquels on a effectivement une permutation car ce sont des variables globales de type primitif et non plus des références d'objets en paramètre.
0