[Debutant][Conception] Création dynamique d'instance
Aprés une recherche infructeuse sur le forum , avec ce titre comme mots clés.
Je me demander si il etait possible de crée dynamiquement des instance de classes.
Ceci n'est encore qu'un projet je n'est donc pas de code , mais l'idée serai de crée , une classe compte , qui represente un compte , qui serai rempli suite a une lecture de texte :
1) je lis une ligne
2) je la decoupe et la traite
3) je crée mon instance de compte
Et cela ainsi de suite jusqua la fin du fichier.
En gros une espece de :
Code:
1 2 3 4 5
|
nbr = 10 // nombre de ligne du fichier
for(int i=0;i<nbr;i++){
Compte C+i = New Compte(parametre);
} |
Je sais que je pourrai crée un tableau de compte , mais le nombre de compte est indéfini, et depend de la lecture du txt ( fichier de sauvegarde d'un jeu )
Donc est'il possible crée dynamiquement mes isntances , ou dois-je passer par un tableau obligatoirement ?
moi je ferai plutot un tableau indexe
bonjour,
dans ton cas j'utiliserai une HastTable indexée par le nom que tu voulais donner à tes variables (C+i).
maintenant les autres reply proposant un Vector sont une bonne idée aussi.
Je t'xplique vite fais la raison principale qui fait que tu ne peux pas faire ce que tu veux.
En fait, tu va créé des variables dont le nom n'est pas connu à la compilation. En toute logique à l'execution ca devrait etre gérable, mais pas a la compilation. En effet, tu va utiliser des variables dans ton code qui sont non déclarées puisque leur nom n'est pas encore définit. Donc le compilo ne les connait pas. De plus, il ne peut verifier le type des variables par la même occasion.
waddle
--
EPITA Student
Promo 2006
Re: moi je ferai plutot un tableau indexe
Citation:
Envoyé par waddle
bonjour,
dans ton cas j'utiliserai une HastTable indexée par le nom que tu voulais donner à tes variables (C+i).
Une Hastable poour ce genre de problème ??? et pourquoi pas utiliser une enclume pour écraser un moucheron...
Non la Hashtable n'est pas adaptée : car la gestion d'une HashTable est très lourde et pas bien adaptée pour ce problème...
Désolé pour a réponse j'avais pas vu que le 10 était à titre d'exemple, j'avais pas lu tout le problème, donc dans ce cas utilises un ArrayList (non un Vector - car Vector est plus lent)...