Resultat prog java

Fermé
K-gauss - 16 févr. 2014 à 08:49
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 20 févr. 2014 à 02:37
Salut mes amis qq'un peut m'aider de m'expliquer le resultat
de ce programme et merci
public class Pass{
static int j = 20;
public static void main (String args[]){
int i = 10;
Pass p = new Pass ();
p.maMethod ( i );
System.out.println ( i );
System.out.println ( j );
}
public void maMethod ( int x ){
x = x * 2;
j = j * 2;
}
}

*************************************
Resultat:
Success time: 0.07 memory: 380224 signal:0
10
40
A voir également:

1 réponse

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 121
20 févr. 2014 à 02:37
Bnjour,

En brèf : la variable "i" n'a pas changé (malgré qu'elle était multipliée par 2 dans la fonction ma Method, par contre "j" a changé pour la même action.

"i" est une variable locale, alors son passage à la fonction est un passage par valeur,
Par contre "j" est une variable "static" propre à la classe, son passage est un passage par référence :

Pour plus d'infos :
http://pise.info/algo/procedures.htm
(le point 2.3.).

Bon Courage.
0