cs_limalima
Messages postés124Date d'inscriptiondimanche 31 août 2008StatutMembreDernière intervention16 décembre 2010
-
17 nov. 2008 à 22:51
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
18 nov. 2008 à 06:23
j'ai un programme dont je n'arrive pas à comprendre le résultat:
class A {
private n;
public A(int nn){
n=nn;}
public int getn(){
return n;}
public void setn(int nn){
n=nn;
}
}
class Util{
public static void incre(A a,int p){
a.setn(a.getn() +p);
}
public static void incre(int n,int p){
n +=p;
}
}
public classe Trans{
public static void main(String [] arg){
A a =new A(2);
int n=2;
system.out.println("valeur de a avant:" +a.getn());
Util.incre(a,5);
system.out.println("valeur de a apres:"+a.getn());
system.out.println("valeur de a avant :"+n);
Util.incre(n,5);
system.out.println("valeur de n apres :"+n);
}
}
le résultat est:
valeur de a avant:2
valeur de a apres:7
valeur de a avant:2
valeur de a apres:2
je n'ai rien compris !!!!!à ce resultat si vous pouvez m'eclairer, merci
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 17 nov. 2008 à 23:53
ça montre que ça se comporte pas pareil entre objet et type primitif quand on passe par une methode statique sensé faire la même chose.
et que c'est un code sale
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 18 nov. 2008 à 06:23
Le but de ce code est, à mon avis, de montrer que seul le n de la classe A est modifié, et non le type primitif n qui est passé par valeur et non par référence.