[Debutant] Probleme de NullPointerException à l'execution !
Bonjour à tous,
Ci dessous les 4 classes d'un petit programme simple qui crée une voiture composée d'un moteur et d'un calculateur de vitesse. La classe de lancement est Interface.java.
Classe Interface.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
public class Interface {
private Voiture voiture;
private static final Interface monInterface = new Interface();
Interface(){
voiture = new Voiture();
//Je voudrais afficher ici la valeur de la vitesse :
System.out.println(monInterface.getVoiture().getVitesse());
}
public static Interface getInstance() {
return monInterface;
}
public Voiture getVoiture(){
return voiture;
}
public static void main(String[] args)
{
//Alors que l'affichage ici fonctionne :
System.out.println("Regime moteur : " + monInterface.getVoiture().getMoteur().getRegime());
System.out.println("Vitesse : " + monInterface.getVoiture().getVitesse());
}
} |
La classe Voiture.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
public class Voiture {
//attributs
private Moteur moteur;
private CalculVitesse calculVitesse;
//constructeur
public Voiture(){
moteur = new Moteur();
calculVitesse = new CalculVitesse();
}
//methodes
public Moteur getMoteur(){
return moteur;
// idem que
// return this.moteur;
}
public CalculVitesse getCalculVitesse(){
return calculVitesse;
}
public double getVitesse(){
return getCalculVitesse().getVitesse();
}
} |
La classe Moteur.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public class Moteur {
private int regime=2500;
Moteur(){
}
public int getRegime(){
return regime;
}
} |
et la classe CalculVitesse.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public class CalculVitesse {
float vitesse;
CalculVitesse(){}
public double getVitesse(){
return Interface.getInstance().getVoiture().getMoteur().getRegime()/100;
}
} |
Dans l'Interface on crée une interface monInterface qui crée une voiture a partir de la classe Voiture qui crée un moteur et un calculateur de vitesse.
ce qui pose problème c'est d'afficher dans le constructeur la valeur de la vitesse en faisant :
System.out.println(monInterface.getVoiture().getVitesse());
Cela ne fonctionne pas !
Pouvez-vous m'expliquer pourquoi ?
Merci !