cs_loloof64
Messages postés342Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 6 novembre 2012
-
13 nov. 2007 à 12:41
cs_loloof64
Messages postés342Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 6 novembre 2012
-
13 nov. 2007 à 14:43
Bonjour,
Désolé si cette question pourra parître trop triviale pour être posée, d'ailleurs même après avoir effectué une recherche sur le forum, je n'ai pas vu de discussion traitant à proprement dit ce sujet .
1) Dans la 3eme (et dernière édition à ce jour) du livre Programmer en Java de Claude Delannoy, on peut lire à peu près ceci
public class E {
//...
public class I {
//...
}
//...
}
Il nous précise alors que pour accéder à la classe I depuis l'extérieur de E (les packages n'ont pas encore été présentés à cet endroit du livre) on peut procéder de la manière suivante :
E.I i;
E e = new E();
i = new e.I();
2) Je dispose de Java 6.0 SDK, Standard Edition . Dans un package identique j'ai :
créé la classe E, sans rien y ajouter, sans rien y retirer; et une classe de test déclarée comme suit
public class TestsMain {
public static void main(String[] args) {
E.I i;
E e = new E();
i = new e.I();
}
}
3) Voilà mon problème : en ayant respecté la procédure de Claude Delannoy, l'EDI Eclipse me retourne (avant même la compilation) : "e cannot be resolved to a type" .
Sauriez-vous alors où me suis-je trompé ? (J'ai déjà pu relever quelques erreurs dans le livre, mais je pense que là l'erreur ne vient pas du livre. )
cs_loloof64
Messages postés342Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 6 novembre 2012 13 nov. 2007 à 13:38
Salut DarkSidious,
J'ai mis les classes E et TestMain dans le même package : com.loloof64.simpletests; , donc je pense que le problème ne vient pas des imports déclarés dans la classe TestMain. Par contre il manque peut-être quelquechose dont je ne me serais pas rendu compte dans les déclarations des imports du fichier E.java .
cs_loloof64
Messages postés342Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention 6 novembre 2012 13 nov. 2007 à 14:35
Bonjour Pierrick,
Ta soltuion marche si je déclare I static à l'intérieur de E : je l'ai modifié comme cela un moment pour tester et je l'ai appelé comme tu viens de me le dire dans le main ==> cela avait déjà fonctionné .
Non le problème vient du fait que l'auteur du livre précise qu'il est aussi possible d'appeler le constructeur de I de l'extérieur sans forcément que I soit déclarée comme static ==> là je n'arrive pas à l''appeler depuis le main() .
Je suis sûr que c'est possible, après comment ? => Je ne sais pas .