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 :
La classe Voiture.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Moteur.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
et la classe CalculVitesse.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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 !
Partager