Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1807 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Nom d'objet dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Nom d'objet dynamique

n°1542030
ANViL
yep...definitely ♫
Posté le 12-04-2007 à 15:24:58  profilanswer
 

Hello  :hello:  
 
Je souahaiterais pouvoir créer des noms d'objet dynamiques, en fonction d'une chaine entrée par l'utilisateur.
 
Par exemple:
 

Code :
  1. Objet "chaine entrée par l'utilisateur" = new Objet()


 
Est-ce possible ?
 
merci d'avance  :jap:
 
P.S: je suppose que la chaine ne contiendra jamais d'espaces ;)

Message cité 1 fois
Message édité par ANViL le 12-04-2007 à 15:26:05
mood
Publicité
Posté le 12-04-2007 à 15:24:58  profilanswer
 

n°1542047
boulgakov
Posté le 12-04-2007 à 15:38:20  profilanswer
 

ANViL a écrit :

Hello  :hello:  
 
Je souahaiterais pouvoir créer des noms d'objet dynamiques, en fonction d'une chaine entrée par l'utilisateur.
 
Par exemple:
 

Code :
  1. Objet "chaine entrée par l'utilisateur" = new Objet()


 
Est-ce possible ?
 
merci d'avance  :jap:
 
P.S: je suppose que la chaine ne contiendra jamais d'espaces ;)


 
Mon Dieu. C'est une blague ? Pourquoi voudrais-tu faire une chose pareille ?
 
Edit - Pardon, j'ai même oublié de répondre : non, c'est impossible. Mais dis pourquoi tu veux faire ça, il y a sûrement un moyen de le faire sans révolutionner la "théorie de la compilation".


Message édité par boulgakov le 12-04-2007 à 15:44:29
n°1542063
ANViL
yep...definitely ♫
Posté le 12-04-2007 à 15:51:15  profilanswer
 

Initialement je voulais créer un nombre d'objet indéfinis, dans une boucle, et faire en sorte qu'à chaque itération l'objet porte le nom
 
"nom_objeti" (où i représente bien sûr la valeur de l'itération).
 
J'en suis donc arrivé à me demander si on pouvais créer dynamique un nom d'objet (ce qui en fait reviens presque au même).
 
Dommage que ça ne soit pas possible  :(

n°1542107
boulgakov
Posté le 12-04-2007 à 16:34:06  profilanswer
 

ANViL a écrit :

Initialement je voulais créer un nombre d'objet indéfinis, dans une boucle, et faire en sorte qu'à chaque itération l'objet porte le nom
 
"nom_objeti" (où i représente bien sûr la valeur de l'itération).
 
J'en suis donc arrivé à me demander si on pouvais créer dynamique un nom d'objet (ce qui en fait reviens presque au même).
 
Dommage que ça ne soit pas possible  :(


 
Attends, là tu parles d'un nom de variable. Pourquoi veux-tu que les utilisateurs puissent choisir le nom de tes variables ? Et comment utilises-tu ces variables dans ton programme, ensuite ?
 
Tu dois faire une confusion, ce n'est pas un nom de variable que tu veux créer dynamiquement. Imagine que tu codes :
 

Code :
  1. int x = 0;
  2. uneFonctionQuiChangeLeNomDeLaVariable(x)
  3. x++ // FAUX ! x ne s'appelle plus, je ne peux plus y faire référence dans mon programme


 
Pas très utile...  
 
A quoi va te servir ensuite le "nom d'objet" dont tu parles, au juste ?
 

n°1542108
fhr
Posté le 12-04-2007 à 16:35:28  profilanswer
 

ANViL a écrit :

Initialement je voulais créer un nombre d'objet indéfinis, dans une boucle, et faire en sorte qu'à chaque itération l'objet porte le nom
 
"nom_objeti" (où i représente bien sûr la valeur de l'itération).
 
J'en suis donc arrivé à me demander si on pouvais créer dynamique un nom d'objet (ce qui en fait reviens presque au même).
 
Dommage que ça ne soit pas possible  :(


 
 
Un
 

Code :
  1. monTableauDObjets[i]...


 
ne te convient pas ?

n°1542134
ANViL
yep...definitely ♫
Posté le 12-04-2007 à 17:01:05  profilanswer
 

fhr a écrit :

Un
 

Code :
  1. monTableauDObjets[i]...


 
ne te convient pas ?


 
Oui effectivement ça fonctionne aussi, mais c'est moins parlant qu'un nom personalisé (monTableauDObjets[i].methode , monTableauDObjets[i+1].methode.......)
 
Cela dit si c'est la seule façon de faire, je ferai avec  ;)

n°1542136
gfive
Posté le 12-04-2007 à 17:05:51  profilanswer
 

ANViL a écrit :

Oui effectivement ça fonctionne aussi, mais c'est moins parlant qu'un nom personalisé (monTableauDObjets[i].methode , monTableauDObjets[i+1].methode.......)
 
Cela dit si c'est la seule façon de faire, je ferai avec  ;)


 
Tu fais avec une hashMap. Voire avec une LinkedHashMap si tu tiens à l'ordre de tes objets.
 
map.put(nom, objet)
 
et voilà.
 
Pour info, en Awk, je crois qu'on peut faire ce genre de trucs, mais je vois pas bien l'intérêt.

n°1542138
masklinn
í dag viðrar vel til loftárása
Posté le 12-04-2007 à 17:07:21  profilanswer
 

ANViL a écrit :

Oui effectivement ça fonctionne aussi, mais c'est moins parlant qu'un nom personalisé (monTableauDObjets[i].methode , monTableauDObjets[i+1].methode.......)

 

Cela dit si c'est la seule façon de faire, je ferai avec  ;)


Les Map<String, String> s'pas fait pour les chiens [:petrus75]


Message édité par masklinn le 12-04-2007 à 17:08:00

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1542140
boulgakov
Posté le 12-04-2007 à 17:08:37  profilanswer
 

gfive a écrit :

Tu fais avec une hashMap. Voire avec une LinkedHashMap si tu tiens à l'ordre de tes objets.
 
map.put(nom, objet)
 
et voilà.
 
Pour info, en Awk, je crois qu'on peut faire ce genre de trucs, mais je vois pas bien l'intérêt.


 
Ah OK, je viens de comprendre la question  :pt1cable: . Désolé pour mes réponses au-dessus, c'était peu utile...

n°1542202
ANViL
yep...definitely ♫
Posté le 12-04-2007 à 18:19:39  profilanswer
 

Ok, merci pour les réponses apportées  :jap:

mood
Publicité
Posté le 12-04-2007 à 18:19:39  profilanswer
 

n°2164933
gammerx
Inutile, donc indispensable !
Posté le 21-11-2012 à 16:47:45  profilanswer
 

Bonjour,

 

Désolé du déterrage, mais en quoi cela est stupide ?
Par exemple, je veux créer un nombre non définit d'objets qui représentent des joueurs, les noms des objets c'est tout simplement le nom des joueurs.

 

En quoi cela est un problème ?

 

Comment je pourrais faire une succession d'instanciation de la manière suivante :
(la variable "nb" (int) aurait été récupérée depuis une saisie clavier)

Code :
  1. Joueur[] objetsJoueurs = new Joueur[nb];
  2. for (int i=0;i<=nb;i++) {
  3.    String nom = inputScan.nextLine();
  4.    System.out.print("Nom Joueur:" );
  5.    Joueur nom = new Joueur();
  6.    objetsJoueurs[i] = nom;
  7. }
 

Et ensuite appeler chaque objet de la manière suivante :

Code :
  1. for (int i=o;i<=objetsJoueurs.length;i++) {
  2.    Joueur joueurPresent = (Joueur) objetsJoueurs[i];
  3.    joueurPresent.jouer();
  4. }
 

Merci pour vos réponses.

 

EDIT : J'ai trouvé la réponse : http://www.siteduzero.com/forum-83 [...] l#r7038738

Message cité 1 fois
Message édité par gammerx le 21-11-2012 à 17:27:43
n°2164975
lasnoufle
La seule et unique!
Posté le 21-11-2012 à 19:18:45  profilanswer
 

gammerx a écrit :

Bonjour,
 
Désolé du déterrage, mais en quoi cela est stupide ?
Par exemple, je veux créer un nombre non définit d'objets qui représentent des joueurs, les noms des objets c'est tout simplement le nom des joueurs.
 
En quoi cela est un problème ?


C'est un probleme parce que c'est pas possible. Et les reponses au-dessus a base de Map<String, Object> remplacent ca tres bien.
 

gammerx a écrit :

Comment je pourrais faire une succession d'instanciation de la manière suivante :
(la variable "nb" (int) aurait été récupérée depuis une saisie clavier)

Code :
  1. Joueur[] objetsJoueurs = new Joueur[nb];
  2. for (int i=0;i<=nb;i++) {
  3.    String nom = inputScan.nextLine();
  4.    System.out.print("Nom Joueur:" );
  5.    Joueur nom = new Joueur();
  6.    objetsJoueurs[i] = nom;
  7. }


 
Et ensuite appeler chaque objet de la manière suivante :

Code :
  1. for (int i=o;i<=objetsJoueurs.length;i++) {
  2.    Joueur joueurPresent = (Joueur) objetsJoueurs[i];
  3.    joueurPresent.jouer();
  4. }


 
Merci pour vos réponses.
 
EDIT : J'ai trouvé la réponse : http://www.siteduzero.com/forum-83 [...] l#r7038738


Ta reponse ne couvre pas ce que tu demandes (ie tes lignes Joueur "nom = new Joueur(); objetsJoueurs[i] = nom;" ); et encore heureux puisque ce n'est pas possible en Java. Mais je pense que tu as mal exprime ton besoin; si cette solution te convient, c'est que tu n'en as rien a faire que le nom de tes variables soit le nom du joueur (et t'as bien raison).
 
Edit: juste pour tester si tu comprends - dans ta deuxieme boucle:

Code :
  1. for (int i=o;i<=objetsJoueurs.length;i++) {
  2.    Joueur joueurPresent = (Joueur) objetsJoueurs[i];
  3.    joueurPresent.jouer();
  4. }


Comment tu comptes recuperer, pour affichage par exemple, le nom du joueur?  


Message édité par lasnoufle le 21-11-2012 à 19:22:19

---------------
C'était vraiment très intéressant.
n°2166316
gammerx
Inutile, donc indispensable !
Posté le 02-12-2012 à 16:05:41  profilanswer
 

Bonjour,
 
Tout d'abord, merci de votre réponse !
 
(Comme indiqué précédemment (deux messages au dessus), la solution a été trouvée)
 
J'aurais tout simplement appelé le nom de l'objet, ou alors j'aurais fixé un attribut au joueur (qui aurait été initialisé via le constructeur).
 
Merci encore ! J'ai appris à manipuler un peu les collections (et les itérateurs), et ça simplifie grandement le travail ! :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Nom d'objet dynamique

 

Sujets relatifs
Comment convertir un fichier pdf dynamique en statique sous java ?destruction en règle d'un objet perso en .NET
Formulaire dynamique en panne !!Tester l'existence d'un objet
Choix langage création site web dynamiquecomment faire un lien dynamique (suivant et précédent) (+1 ou -1 page)
faire bouger un objet[RESOLU] Lien html dynamique sur un label
Au secours! VB6 : Création dynamique d'objets dans datareportAu secours ! (pb nom d'objet dynamique)
Plus de sujets relatifs à : Nom d'objet dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR