Probleme lié à la liste d'objet et variable commune
Résolu/Fermé
Makuzepo
Messages postés
3
Date d'inscription
vendredi 27 mai 2016
Statut
Membre
Dernière intervention
28 mai 2016
-
27 mai 2016 à 15:20
Makuzepo Messages postés 3 Date d'inscription vendredi 27 mai 2016 Statut Membre Dernière intervention 28 mai 2016 - 28 mai 2016 à 12:15
Makuzepo Messages postés 3 Date d'inscription vendredi 27 mai 2016 Statut Membre Dernière intervention 28 mai 2016 - 28 mai 2016 à 12:15
A voir également:
- Probleme lié à la liste d'objet et variable commune
- Liste déroulante excel - Guide
- Vente objet occasion entre particulier - Guide
- Liste déroulante en cascade - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
27 mai 2016 à 19:56
27 mai 2016 à 19:56
Bonjour,
J'éviterai d'utiliser get(i) comme tu l'as fait à l'ajout dans la liste, on peut s'en passer et c'est pas plus mal, car rien ne garanti que ta liste soit vide au départ et dans ce cas tu vas être décalé.
Ceci étant dit ton problème doit être ailleurs.
Il faudrait voir comment tu as déclaré ton attribut place et ta méthode setPlace dans la classe Monstre.
Remarque : normalement tu devrais avoir un getPlace() il faut que tu l'utilises plutôt que passer directement par l'attribut place (qui devrait d'ailleurs être masqué)
J'éviterai d'utiliser get(i) comme tu l'as fait à l'ajout dans la liste, on peut s'en passer et c'est pas plus mal, car rien ne garanti que ta liste soit vide au départ et dans ce cas tu vas être décalé.
for (int i = 0; i<size; i++){ Monstre mons = new Monstre(); mons.setPlace(i); horde.add(mons); System.out.println("Add "+mons.place); } for (int i = 0; i<horde.size(); i++){ System.out.println("Place "+i+": "+horde.get(i).place); }
Ceci étant dit ton problème doit être ailleurs.
Il faudrait voir comment tu as déclaré ton attribut place et ta méthode setPlace dans la classe Monstre.
Remarque : normalement tu devrais avoir un getPlace() il faut que tu l'utilises plutôt que passer directement par l'attribut place (qui devrait d'ailleurs être masqué)
28 mai 2016 à 10:06
Merci pour tes conseils, j'ai modifié en conséquence. Je pense aussi que mon problème est ailleurs...
Voici ma classe Monstre :
Voici ce que j'obtient :
Place Add 0
Place Add 1
Place Add 2
Place Add 3
Place Add 4
Place Add 5
Place Add 6
Place Add 7
Place Add 8
Place Add 9
i : 0 Place : 9
i : 1 Place : 9
i : 2 Place : 9
i : 3 Place : 9
i : 4 Place : 9
i : 5 Place : 9
i : 6 Place : 9
i : 7 Place : 9
i : 8 Place : 9
i : 9 Place : 9
28 mai 2016 à 11:29
Remarque : je pense que tu peux déduire certains attributs à partir des autres, il est donc inutile de les conserver.
Par exemple, tu peux enlever , car tu peux le calculer avec ...
Il en a va sûrement de même pour front, back, up et down qui doivent se calculer à partir de posX et posY (selon ce que tu veux faire).
Modifié par Makuzepo le 28/05/2016 à 12:16
Comme ma variable n'était plus en static, la valeur ne pouvait pas changer, je suis donc passé par le constructeur pour définir sa place:
Voila ce que j'ai maintenant :
Place Add 0
Place Add 1
Place Add 2
Place Add 3
Place Add 4
Place Add 5
Place Add 6
Place Add 7
Place Add 8
Place Add 9
Place i : 0 : 0
Place i : 1 : 1
Place i : 2 : 2
Place i : 3 : 3
Place i : 4 : 4
Place i : 5 : 5
Place i : 6 : 6
Place i : 7 : 7
Place i : 8 : 8
Place i : 9 : 9
Merci en tout cas. Tu as été rapide et efficace !!
A bientôt !