Alors alors !
Je vois plusieurs erreurs !
Dans ta classe "Personne", tu définis la méthode
public Ajouter(ArrayList l)
ça va poser problème parce que la liste passée en paramètre (l) a le même nom que la liste présente dans ta classe (ça compile mais c'est pas conseillé)
Bref, dans ta méthode ajouter, quand tu fais l.add, tu ajoute la personne à la liste passée en paramètre, et du coup ta variable de classe ne sera jamais remplie.
Par contre dans ta méthode afficher quand tu fais
tu accède à ta variable de classe, donc dans tous les cas, là, tu n'aura pas d'enregistrements à afficher.
Ensuite, dans Personnel, tu appelles directement la méthode ajouter() (qui existe pas dans cette classe), et idem pour afficher.
En plus tu appelles ajouter() sans passer de liste en paramètre, ça ne peut donc pas correspondre à la méthode ajouter (ArrayList) de ta classe Personne.
Dans ta classe Personne, cette ArrayList est censé représenter quoi? je pense qu'elle n'a pas grand chose à faire là. c'est utile de mettre une liste de Personne dans la classe Personne si tu veux représenter une hiérarchie de personnes ( Chaque personne ayant la liste des personnes qu'elle commande par exemple), mais je sais pas si c'est ton cas ici.
Si c'est pas le cas, je pense qu'il faudrait refaire ta structure plutôt comme ça
Classe Personnel
ArrayList personnes
void ajouter () //qui vient remplir la liste personnes
void afficher () //qui affiche la liste personnes
Classe Personne
age
nom
prénom
Tous les accesseurs dont t'as besoin
Je pense que c'est plus à un truc comme ça que tu pense, si c'est pas le cas, donne moi plus de détail sur ce que tu veux obtenir au final
Dernier détail, pour les ArrayList (Et les listes en général) précise le type qui remplira ces liste, ça aide à la lisibilité et ça évite des erreurs de programmation derrière :
ArrayList l = new ArrayList();
devient alors
ArrayList<Personne> l = new ArrayList<Personne>();
à plus !
Partager