Java

Fermé
classico - 25 janv. 2012 à 00:56
Ratife Messages postés 2 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 25 janvier 2012 - 25 janv. 2012 à 08:41
class A {
public A() {
np=3;
p=n*np;
n=5;
}
public void affiche() {
System.out.println("np="+np+"p="+p+"n="+n);
}
private int np;
private int n=20*np , p=10;
}
public class Exercice0 {
public static void main(String args[] ) {
A a=new A();
a.affiche();
}
}



// je veux savoir pourquoi ce programme affiche n=5 p=0 np=3 //
// mon probleme c'est avec le p=0 , j'arrive pas à comprendre comment Java prend les choses a ce niveau pour qu'il affiche 0

et Merci beaucoup
A voir également:

1 réponse

Ratife Messages postés 2 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 25 janvier 2012
25 janv. 2012 à 08:41
OK , le probleme est:
tous les variables suivantes sont globale:
private int np;
private int n=20*np , p=10;

Ainsi avant d'entrer dans le constructeur, il effectue ces calculs càd : np =0 ; n = 20*0 =0 et p=10

Dans le constructeur : np = 3 ; p = n * np = 0 * 3 = 0 ; n =5.

Donc la solution c'est de renverser la place de n=5; et p=n*np;
càd
np = 3;
n = 5;
p = n*np;

A mon avis c ça !
0