mau007
Messages postés20Date d'inscriptionlundi 2 janvier 2006StatutMembreDernière intervention20 mai 2011
-
26 avril 2011 à 22:42
Utilisateur anonyme -
2 mai 2011 à 19:00
Bonjour à tous,
étant débutant dans la programmation java, je fais appel à une communauté d'amis .
Mon soucis concerne l'utilisation d'une ArrayList... Voici en détail ce que je rencontre comme problème.
J'ai une classe "MyClass":
public class MyClass
{
String champUn;
String champDeux;
String champTrois;
}
Est-ce que quelqu'un peut m'expliquer la raison?
Ai-je oublié de faire quelque chose?
Comment puis-je m'en sortir vu que je souhaite obtenir un "tableau" de classe (un truc genre :
MyClass[] maClasse;
...
mais on m'a conseillé l'utilisation d'une ArrayList...
HFanny
Messages postés699Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention13 mai 201120 27 avril 2011 à 03:40
Salut,
Tout d'abord, ce que tu devrais obtenir est :
maClasse.size(): 2
maClasse.get(0).champUn: Test2_Champ1
maClasse.get(1).champUn: Test2_Champ1
Ce qui se passe :
1. currentClass est créé
2. la référence à currentClass est ajouté à maClasse
3. currentClass est modifié
4. la référence à currentClass est ajouté à nouveau à maClasse
La méthode .add ajoute la référence d'un objet à la fin de la liste, il faut donc créer un nouvel objet et non pas réutiliser le précédent.
Par contre, je ne sais pas si c'est parce que c'est un test mais il est en général préféré d'avoir des attributs d'un objet "private" et d'utiliser des getters et setters pour y accéder :)
(Et pour le nom de la classe ainsi que le mix entre anglais/français pour les noms des champs, je suppose que c'est aussi dû au test ^^)
Un getter te permet d'acceder a un attribut par exemple, et ceci avec une methode getMonAttribut().
Un setter te permet de donner une valeur a un attribut, et ce grace a une methode du genre setMonAttribut( Type nomParam ).
Il n'est jamais trop tard pour apprendre auelaue chose
Bonne continuation !
-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
mau007
Messages postés20Date d'inscriptionlundi 2 janvier 2006StatutMembreDernière intervention20 mai 2011 1 mai 2011 à 13:30
Bonjour à tous,
je me permet de ré-ouvrir ce post car au fil des jours mes connaissances augmentent et mon projet progresse avec tout un lot de questions. Mais il y en a une que je n'arrive pas trouver une réponse... Alors... A vous le studio :-)
Class ClasseUne extends ClassAbstraite{
private String champUn;
private String champDeux;
private List <ClasseDeux> champTrois = new ArrayList <ClassDeux>();
//getter / setter pour chaque attribut
}
Le souci que je rencontre est que "champTrois" doit contenir tant des objets de type ClasseDeux que des objets de type ClasseTrois.
Si tu mets tout ça dans une même liste, il faudrait que tes classes ClasseDeux et ClasseTrois héritent de la même classe (ex : SuperClasse) que tu utiliseras.
Ce qui te donnera quelque chose du genre
private List<SuperClasse> champsTrois = new ArrayList<ClasseDeux>();
-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --