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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:

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?