Java - Construcuteur sans paramète
Résolu
thapipo
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
thapipo Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
thapipo Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux savoir comment doit-je créer mon constructeur sans parametre de ma classe Ecole pour pouvoir aller modifier (ajouter/retirer) des membres de ma liste Ecole.
J'ai pensé alors que je dois créer une instance d'ecole (dans ma classe TEST) pour pouvoir accéder aux méthodes de ma classe École. Cependant, ca ne fonctionne pas.
Dans ma classe test, lorsque je fais un
Ecole ecole = new Ecole();
Individus e1 = new Etudiant ();
ecole.ajouterMembre(e1); // <--- Ce bout de code ne fonctionne pas, je n,ai pas acces aux méthodes de ma classe Ecole. Je crois que mon constructeur sans parametres de ma classe Ecole est la cause du problème.
Je veux pouvoir aller ajouter quand je veux des membres qui peuvent être de type Etudiant ou Professeurs.
J'ai une autre classe Individus qui est abstraites et oblige la définition d'autres méthodes mais je sais que ce n'est pas a cet endroit mon problème. Il est dans ma définition de ma classe Ecole.
Merci !
==============================================================
Si j'ai par exemple un code suivant :
Public class Etudiant extends Individus{
String nom;
String prenom;
}
public Etudiant(){
nom = "etudiant"
prenom = "etudiant";
}
=======================
Public class Professeurs extends Individus{
String nom;
String prenom;
}
public b(){
nom = "professeur";
prenom = "professeur";
}
=======================
Ensuite je creer une nouvelle classe public class Ecole
Public class Ecole {
public static Arraylist <Individus> listeMembreEcole;
}
// Ensuite je crer un constructeur sans parametres de ma classe Ecole pour pouvoir accéder aux méthodes de ma classe Ecole
public Ecole(){
}
// Méthodes d'instances
public void ajouterMembre (Individus unIndividus ){
listeMembreEcole.add(unIndividus);
}
Je veux savoir comment doit-je créer mon constructeur sans parametre de ma classe Ecole pour pouvoir aller modifier (ajouter/retirer) des membres de ma liste Ecole.
J'ai pensé alors que je dois créer une instance d'ecole (dans ma classe TEST) pour pouvoir accéder aux méthodes de ma classe École. Cependant, ca ne fonctionne pas.
Dans ma classe test, lorsque je fais un
Ecole ecole = new Ecole();
Individus e1 = new Etudiant ();
ecole.ajouterMembre(e1); // <--- Ce bout de code ne fonctionne pas, je n,ai pas acces aux méthodes de ma classe Ecole. Je crois que mon constructeur sans parametres de ma classe Ecole est la cause du problème.
Je veux pouvoir aller ajouter quand je veux des membres qui peuvent être de type Etudiant ou Professeurs.
J'ai une autre classe Individus qui est abstraites et oblige la définition d'autres méthodes mais je sais que ce n'est pas a cet endroit mon problème. Il est dans ma définition de ma classe Ecole.
Merci !
==============================================================
Si j'ai par exemple un code suivant :
Public class Etudiant extends Individus{
String nom;
String prenom;
}
public Etudiant(){
nom = "etudiant"
prenom = "etudiant";
}
=======================
Public class Professeurs extends Individus{
String nom;
String prenom;
}
public b(){
nom = "professeur";
prenom = "professeur";
}
=======================
Ensuite je creer une nouvelle classe public class Ecole
Public class Ecole {
public static Arraylist <Individus> listeMembreEcole;
}
// Ensuite je crer un constructeur sans parametres de ma classe Ecole pour pouvoir accéder aux méthodes de ma classe Ecole
public Ecole(){
}
// Méthodes d'instances
public void ajouterMembre (Individus unIndividus ){
listeMembreEcole.add(unIndividus);
}
A voir également:
- Java - Construcuteur sans paramète
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Pour utiliser la liste listeMembreEcole il faut que celle ci soit initialisée, par défaut sa valeur est null ce qui provoquera un NullPointerException.
Il faut donc initialiser la liste, par exemple en faisant
Attention :
Tu as déclaré listeMembreEcole comme étant static ce qui est faux, car chaque école devra avoir sa propre liste d'individus.
De plus tu l'as mis public, ce qui peux poser d'autres problèmes, notamment laisser la possibilité à n'importe quelle autre classe de modifier sa valeur sans passer par les méthodes de la classe Ecole, ce qui est mal.
Enfin, il est généralement conseillé de ne pas déclarer les objets par leurs classes, mais par leurs interfaces, cela laisse plus de choix quant à l'implémentation (tu pourrais avoir un constructeur qui utilise un ArrayList et un second constructeur qui utiliserait une LinkedList par exemple.
Remarque : il est possible aussi de déclarer ta liste finale, si son contenu est amené à évoluer, il y aurait peut d'intérêt à modifier la liste en elle même.
La bonne déclaration de ta classe Ecole serait donc :
Remarque : pour des questions logiques, il serait préférable de mettre tes classes au singulier, et ainsi avoir
Il faut donc initialiser la liste, par exemple en faisant
listeMembreEcole = new ArrayList<Individus>();
Attention :
Tu as déclaré listeMembreEcole comme étant static ce qui est faux, car chaque école devra avoir sa propre liste d'individus.
De plus tu l'as mis public, ce qui peux poser d'autres problèmes, notamment laisser la possibilité à n'importe quelle autre classe de modifier sa valeur sans passer par les méthodes de la classe Ecole, ce qui est mal.
Enfin, il est généralement conseillé de ne pas déclarer les objets par leurs classes, mais par leurs interfaces, cela laisse plus de choix quant à l'implémentation (tu pourrais avoir un constructeur qui utilise un ArrayList et un second constructeur qui utiliserait une LinkedList par exemple.
Remarque : il est possible aussi de déclarer ta liste finale, si son contenu est amené à évoluer, il y aurait peut d'intérêt à modifier la liste en elle même.
La bonne déclaration de ta classe Ecole serait donc :
public class Ecole { private final List<Individus> listeMembreEcole; public Ecole() { listeMembreEcole = new ArrayList<Individus>(); } public void ajouterMembre(Individus unIndividus) { listeMembreEcole.add(unIndividus); } }
Remarque : pour des questions logiques, il serait préférable de mettre tes classes au singulier, et ainsi avoir
Individu unIndividu, ce qui se comprend mieux que
Individus unIndividus.