Comment instancier des classes internes?
Bonsoir!
Je cherche à améliorer certaines de mes compétences par thèmes et j'étudie aujourd'hui l'instanciation et les classes internes.
Je suis face à des classes Vehicule et des classes Tourisme qui sont des sous classes de la classes Transport. La classe Véhicule a la classes interne Moteur et Carrosserie. La classe Moteur a un contructeur et la classe Carosserie n'en a pas.
D'où le code suivant:
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 36 37 38 39 40 41 42
|
public class CC15Ex3 {
public static void main(String[] args){
Vehicule t1 = new Tourisme(10,90);
}
}
class Transport{
int no;
int annee;
}
class Vehicule extends Transport{
int puissance;
String couleur;
public String toString(){
return "Vehicule no " + no +" puissance "+puissance;
}
Moteur mot;
static class Moteur{
static int annee;
int no;
int kilometrage;
static int noC=100;
static int puissance =90;
Moteur(){
}
public String toString(){return "Moteur no" + no+" km "+ kilometrage+ "puiss" + puissance +" année "+ annee;}
}
class Carosserie{
String couleur;
}
}
class Tourisme extends Vehicule{
String marque;
Tourisme(int n, int p){
no=n;
}
} |
Je cherche a instancier un Moteur m1 dont je dois préciser le type et une Carrosserie C1 dont je dois préciser aussi le type.
J'ai donc fait:
Code:
1 2 3 4 5 6 7
|
public static void main(String[] args){
Moteur m1 =Vehicule.Moteur();
Carrosserie c1= Vehicule.Carosserie;
Vehicule t1 = new Tourisme(10,90);
} |
Mais, en vérifiant sur Eclispe, on remarque que la plateforme signale
- "Multiple markers at this line
- - Moteur cannot be resolved to a type
- - The method Moteur() is undefined for the type "
pour la première instanciation. Et
- Multiple markers at this line
- - Carrosserie cannot be resolved to a type
- - Vehicule.Carosserie cannot be resolved to a variable
pour la seconde.
Tandis que le compilateur crie:
Citation:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Moteur cannot be resolved to a type
The method Moteur() is undefined for the type Vehicule
Carrosserie cannot be resolved to a type
Vehicule.Carosserie cannot be resolved to a variable
at exercices.CC15Ex3.main(CC15Ex3.java:6)
Qu'ai je fais de mal?