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 -
A voir également:
- Java - Construcuteur sans paramète
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - 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.