No enclosing instance of type is accessible
Résolu
domxaline
-
domxaline -
domxaline -
Bonjour,
en compilant mon prg,j'ai eu cette erreur, veuillez m'aidez svp:
"No enclosing instance of type Personnage is accessible. Must qualify the allocation with an enclosing instance of type Personnage
(e.g. x.new A() where x is an instance of Personnage)."
en compilant mon prg,j'ai eu cette erreur, veuillez m'aidez svp:
"No enclosing instance of type Personnage is accessible. Must qualify the allocation with an enclosing instance of type Personnage
(e.g. x.new A() where x is an instance of Personnage)."
public abstract class Personnage { public void seDeplacer() { System.out.println("Je me déplace à pied."); } public void combattre() { System.out.println("Je ne combat pas!"); } public class Guerrier extends Personnage { public void combattre() { System.out.println("Fusil,Pistolet,Couteau! Tous ce que tu veux!"); } } public class Medecin extends Personnage { public void combattre() { System.out.println("Vive le scalpel!"); } public void soigner() { System.out.println("Je soigne les blessures."); } } public class Civil extends Personnage { public void combattre() { System.out.println("Je ne combat pas!"); } public void seDeplacer() { System.out.println("Je me déplace à pied."); } } public class Chirurgien extends Personnage { public void combattre() { System.out.println("Je ne combat pas!"); } public void seDeplacer() { System.out.println("Je me déplace à pied."); } public void soigner() { System.out.println("Je fais des opérations."); } } public class Sniper extends Personnage { public void combattre() { System.out.println("Je me sers de mon fusil à lunette!"); } public void seDeplacer() { System.out.println("Je me déplace à pied."); } } public static void main(String[]args) { Personnage[]tPers= {new Guerrier(),new Chirurgien(),new Civil(),new Sniper(), new Medecin()}; for(Personnage p:tPers) { System.out.println("\nInstance de "+p.getClass().getName()); System.out.println("******************************************************"); p.combattre(); p.seDeplacer(); } } }
A voir également:
- No enclosing instance of type is accessible. must qualify the allocation with an enclosing instance of type
- Must qualify the allocation with an enclosing instance of type - Meilleures réponses
- No enclosing instance of type main is accessible. must qualify the allocation with an enclosing instance of type main (e.g. x.new a() where x is an instance of main). - Meilleures réponses
- What is my movie français - Télécharger - Divers TV & Vidéo
- Hns-accessible-system-folder ✓ - Forum Réseau
- No tftp response ✓ - Forum Mobile
- Input signal out of range ✓ - Forum Matériel & Système
- No available networks no response from server iron tv pro - Forum TV & Vidéo
9 réponses
Le problème c'est que tu as fait
Or cela n'est pas possible, car les objets de B doivent dépendre des objets de A.
Il faudrait faire :
Or dans ton cas c'est impossible car A est une classe abstraite ! Il faudrait donc utiliser une implémentation de A, mais les seules implémentations que tu as c'est B...
Première solution, tu considères que la classe B est static, elle ne dépend donc plus des objets de A mais de la classe, il n'est donc plus nécessaire d'instancier un objet A.
Deuxième solution, qui est à mon avis la meilleure dans ton cas, tu ne fais pas de classes internes, mais tu mets chaque classe dans son propre fichier.
public class A { public class B { } } B b = new B();
Or cela n'est pas possible, car les objets de B doivent dépendre des objets de A.
Il faudrait faire :
A a = new A(); B b = a.new B();
Or dans ton cas c'est impossible car A est une classe abstraite ! Il faudrait donc utiliser une implémentation de A, mais les seules implémentations que tu as c'est B...
Première solution, tu considères que la classe B est static, elle ne dépend donc plus des objets de A mais de la classe, il n'est donc plus nécessaire d'instancier un objet A.
public class A { public static class B { } } A.B b = new A.B();
Deuxième solution, qui est à mon avis la meilleure dans ton cas, tu ne fais pas de classes internes, mais tu mets chaque classe dans son propre fichier.
public class A { } public class B { } B b = new B();