Java - Construcuteur sans paramète
Résolu/Fermé
thapipo
Messages postés
12
Date d'inscription
mercredi 6 juin 2012
Statut
Membre
Dernière intervention
21 février 2014
-
Modifié par thapipo le 21/02/2014 à 17:28
thapipo Messages postés 12 Date d'inscription mercredi 6 juin 2012 Statut Membre Dernière intervention 21 février 2014 - 21 févr. 2014 à 20:24
thapipo Messages postés 12 Date d'inscription mercredi 6 juin 2012 Statut Membre Dernière intervention 21 février 2014 - 21 févr. 2014 à 20:24
A voir également:
- Java - Construcuteur sans paramète
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
2 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
21 févr. 2014 à 18:49
21 févr. 2014 à 18:49
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
.
thapipo
Messages postés
12
Date d'inscription
mercredi 6 juin 2012
Statut
Membre
Dernière intervention
21 février 2014
2
21 févr. 2014 à 20:24
21 févr. 2014 à 20:24
Tout est réglé.
Merci pour la réponse et des précieux conseils !
Merci pour la réponse et des précieux conseils !