Creation d'objet avec un nom personalisé

WyattFR Messages postés 6 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 4 janvier 2008 - 4 janv. 2008 à 15:16
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 4 janv. 2008 à 23:10
Bonjour, je vous explique mon souci,

j'ai un programme a faire pour mes cours, et je suis tombé sur une colle, c'est un programme graphique utilisant Swing.

Voila en faite je dois crée un objet d'une classe Alcool.
et 1 objet = 1 alcool.

et je voudrais que l'utilsateur quand il entre le nom de l'alcool ici : Curaco Bleu (apres convertion et stockage ds un variablenew nomAlcool ) j'ai "curacobleu".

je voudrai faire ceci :
Alcool nomAlcool = Alcool( ... ) ;
(j'aurai comme objet : curacobleu)
Aprés avoir fait des recherches j'ai vu que c'est pas possible mais je suis bloqué ...

Personne a la solution ?

9 réponses

cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 janv. 2008 à 19:03
Salut,
je suis pas sur d'avoir bien compris ce que vous voulez.
Pourquoi n'utilisez vous pas simplement un attribut nom dans votre classe alcool.
Ainsi quand vous créez votre objet vous faîtes:
Alcool alcool = new Alcool("curacobleu");
(a condition d'avoir créer le constructeur adéquat).
Bonne continuation.
0
WyattFR Messages postés 6 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 4 janvier 2008
4 janv. 2008 à 19:13
Le souci c'est que je peux avoir un nombre infini d'alcools, et j'aimerai avoir les alcools (les objets) en fonction de leur noms pour les identifiers:

avoir curacobleu, pastis, whisky etc.

car dans le prog c'est l'user qui ajoute les alcools et donc il peut y en avoir une infinité
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 janv. 2008 à 19:48
Ba oui, mais ça marcherait très bien avec un attribut.
Il faut redéfinir la méthode equals, éventuellement la méthode toString.
Le fait que le nom soit un attribut n'empèche pas de les identidier.
Par exemple avec une classe:
 
public class Alcool {
      private String nom;

      public Alcool(String nom) {
          this.nom = toLower(nom);
      }


<code class="java_keyword1">public
boolean
equals
(Object obj)
{
</code>

           <code class="java_keyword1">if
(</code>
obj <code class="java_keyword1">instanceof
Alcool</code>
<code class="java_literal2">
)
{
</code>
<code class="java_keyword1">
        return
(Alcool obj).nom.equals(this.nom)
;</code>
           <code class="java_operator">}
</code>
<code class="java_operator">
    else return false;
</code>
<code class="java_operator">
}

public String toString() {
    return nom;
}
</code>
}

 Après on peut très bien faire:

Alcool alcool1 = new Alcool("curacobleu");
Alcool alcool2 = new Alcool("curacobleu");
if (alcool1.equals(alcool2)) ...


Je vois pas vraiment l'intéret d'une infinité d'objet héritant d'Alcool ici, après c'est vrai que je connaît pas tout le programme.
0
WyattFR Messages postés 6 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 4 janvier 2008
4 janv. 2008 à 19:57
je ne cherches pas a les comparer...

je t'explique le programme :

C'est un alcotest, qui d'apres une loi calcul le taux d'alcolemie dans le sang en fonction des alcools et liquides consommé :

L'utilsateur saisi les alcools dans un formulaire (avec Nom, Taux et Volume) et en cliquant sur le bouton OK, je voulais crée un objet : nomObjet qui serait "lenomdelalcoolsansespaceetavecdesminusucles" et comme attributs "Le Nom", volume et taux.

Mais on ne sait pas le nombre d'alcools initiales, donc faire alcool1,  alcool2 etc. ne marche pas...

donc je coince....

je sais pas si tu comprends et que je me suis assez bien exprimé..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 janv. 2008 à 19:57
Sinon vous voulez peut être retrouver l'objet à partir du nom,
à ce moment regardez du coté des maps, et à chaque création d'alcool vous associé l'objet créer à son nom dans la map.
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 janv. 2008 à 19:59
ou simplement un tableau d'alcool.
(alcool[i])
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
4 janv. 2008 à 22:58
ou alors une HashTable ^^ => http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html

en gros tu as des paire clef / valeur donc tu peux faire un objet alcool comme preciser precedemment et ensuite l'ajouter dans une HashTable en mettant en clef le nom de l'alcool avec la classe elle meme ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
4 janv. 2008 à 23:09
HashTable est en effet une des implementation de map les plus utilisées
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
4 janv. 2008 à 23:10
HashMap si pas besoin de synchronization ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Rejoignez-nous