IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Création d'un objet par Variable


Sujet :

Langage Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Création d'un objet par Variable
    Bonjour à tous, voila mon problème et j'ai beau chercher sur le forum je trouve pas donc avant de m'arracher les cheveux que je n'ai plus je post.
    Désolé si jamais un message du même type a déjà était posté.

    Je commence Java et étant un peu impulsif d'après mes profs j'ai voulu créer une boucle qui fabriquerais un objet d'après une classe.
    Cet objet aurait pour nom la valeur d'une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    while (rep=="oui")
     
     {
     
        NomC=JOptionPane.showInputDialog("....");
        PrixHorsTaxe=idem;
        Quantite=idem;
     
    //convertion des données
        int Px = Integer.parseInt(PrixHorsTaxe);
        int Quant = Integer.parseInt(Quantite);
     
    //compteur initialiser a zero en dehors de la boucle        
        cpt=cpt+1;
     
    //conversion du compteur dans une variable        
        String Numcpt = Integer.toString(cpt);
     
    //début des problèmes
    //le nom de l'objet devrais avoir numerocpt1,numerocpt2,numerocpt3,etc..
     
        c = numerocpt+Numcpt;
     
    //création de l'objet
        Compte c;
     
    //initiation de l'objet    
        c = new Compte(cpt,NomC,Px,Quant);
     
        rep=JOptionPane.showInputDialog("Voulez vous saisir un compte ?");
     
    }
    Il me donne une erreur : incompatibilité de type mais comment reglé le problème je nage....

    Merci pour vos réponses,
    Cordialement Alexandre.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Vu que java est un langage semi compilé tu ne peux pas faire ça (c'en est de même avec les langages compilé comme le C ou autres).

    La solution pour toi est de créer une liste de variables, donc grosso modo tu crées un ArrayList qui contiendra autant de variable que tu en as besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    ArrayList listeComptes = new ArrayList()
    while (rep.equals("oui")) { //le == ne marche pas pour les String
     
        NomC=JOptionPane.showInputDialog("....");
        PrixHorsTaxe=idem;
        Quantite=idem;
     
    //convertion des données
        int Px = Integer.parseInt(PrixHorsTaxe);
        int Quant = Integer.parseInt(Quantite);     
    c = new Compte(cpt,NomC,Px,Quant);
     
    listeComptes.add(c);
     
        rep=JOptionPane.showInputDialog("Voulez vous saisir un compte ?");
    }
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par Thanatos70
    Il me donne une erreur : incompatibilité de type
    Pourrais tu donner le message d'erreur "original", avec le numéro de ligne par exemple.

    Le pb ne viendrait pas du constructeur de Compte plutot ?

    Par contre je me permet 2 3 remarques

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    //while (rep=="oui")
    // il faut utiliser equals pour tester des chaines de caractère
    // mais pour un while le mieux est d'utiliser un boolean. enfin c'est plus propre je trouve
    {
     
    NomC=JOptionPane.showInputDialog("....");
    PrixHorsTaxe=idem;
    Quantite=idem;
     
    //convertion des données
    int Px = Integer.parseInt(PrixHorsTaxe);
    int Quant = Integer.parseInt(Quantite);
     
    //compteur initialiser a zero en dehors de la boucle
    //cpt=cpt+1;
    //conversion du compteur dans une variable
    // pas de majuscules au variables
    String numcpt = Integer.toString(cpt++);
     
    //début des problèmes
    //le nom de l'objet devrais avoir numerocpt1,numerocpt2,numerocpt3,etc..
     
    // tout est bien en String ? c et numerocpt
    c = numerocpt+Numcpt;
    // c pas plutot
    c = "numerocpt"+NumCpt;
     
    //création de l'objet
    //Compte c;
    //initiation de l'objet autant faire tout en une ligne ...
    Compte c = new Compte(cpt,NomC,Px,Quant);
     
    rep=JOptionPane.showInputDialog("Voulez vous saisir un compte ?");
     
    }
    [EDIT] Vu le message ci dessus ... j'ai ptet pas compris ce que tu souhaites faire ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Déjà, pour comparer 2 strings, on utilise .equals() et non ==...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Le but est de créer un objet qui aurais pour nom :
    numerocpt1,numerocpt2 avec numerocpt + cpt

    numerocpt étant un ligne de texte et cpt ma variable compteur de ma boucle.

    [EDIT] : j'ai modifié mon code mais l'erreur se trouvé a la ligne << Compte C >> lorsque je cré mon objet.

    ps: Merci pour vos réponses et désolé je penserais à mes balises la prochaine fois c'est promis ( Merci aux modérateurs des forums qui font un excellent travail en régle générale)

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par Thanatos70
    j'ai modifié mon code mais l'erreur se trouvé a la ligne << Compte C >> lorsque je cré mon objet.
    fais voir le code du constructeur dans ce cas. est ce toujours le même message d'erreur ? On peut l'avoir en VO ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    String rep=JOptionPane.showInputDialog("Voulez vous saisir un compte ?");
     
    ArrayList listeComptes = new ArrayList();
     
     
    while (rep.equals("oui"))
     
     {
     
    	NomC=JOptionPane.showInputDialog("Entrez le nom du compte a creer");
    	PrixHorsTaxe=JOptionPane.showInputDialog("Entrez le Prix Hors Taxe");
    	Quantite=JOptionPane.showInputDialog("Entrez une quantité");
     
    	int Px = Integer.parseInt(PrixHorsTaxe);
    	int Quant = Integer.parseInt(Quantite);
     
     
    	cpt=cpt+1;	
     
    	Compte c = new Compte(cpt,NomC,Px,Quant);
     
     	listeComptes.add(c);
     
    	rep=JOptionPane.showInputDialog("Voulez vous saisir un compte ?");
     
     
    }
    voila l'erreur :

    C:\Documents and Settings\test.java:17: cannot find symbol
    symbol : class ArrayList
    location: class test
    ArrayList listeComptes = new ArrayList();
    ^
    C:\Documents and Settings\test.java:17: cannot find symbol
    symbol : class ArrayList
    location: class test
    ArrayList listeComptes = new ArrayList();
    ^
    2 errors

    Process completed.

    Code de mon constructeur :
    public Compte(int RefA, String Des, int Pxht, int Quant)
    {
    reference=RefA;
    designation=Des;
    priht=Pxht;
    quantite=Quant;
    }

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    BA il te manque l'import associé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import java.util.ArrayList;
    au début de ton code.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je vous remerci tous de m'avoir aider, étant en vacance pendant une semaine et demie je verrais ça à ma rentrée.
    Je posterais de nouveau pour dire si tout marche comme il faut.

    Merci encore de vos réponses, cordialement Alexandre.

Discussions similaires

  1. Création d'un objet par une variable?
    Par MiniDevZ dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 07/02/2012, 11h25
  2. Création d'objets "par lots"
    Par phplive dans le forum Langage
    Réponses: 75
    Dernier message: 10/12/2008, 22h02
  3. Réponses: 4
    Dernier message: 04/01/2008, 21h19
  4. [POO] Créer une instance d'un objet par la valeur d'une variable
    Par philworks dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/11/2007, 14h27
  5. Réponses: 1
    Dernier message: 08/11/2006, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo