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

Collection et Stream Java Discussion :

Tableau d'objets en parametres de constructeurs


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut Tableau d'objets en parametres de constructeurs
    Bonjour a tous, j'ai pas fait de java depuis pas mal de temps et je suis en train de faire une application avec une interface graphique SWING.

    J'aurais quelques questions (assez simples je pense ... pour les autres mais pas pour moi). C'est une application un magasin qui doit faire la gestion des stocks et enregistrer ses nouveaux clients.

    J'ai dans mon projet 3 pages différentes donc 3 interfaces. J'ai une classe client avec ses attributs et ses méthodes.

    1) Dans mon main, je crée un tableau d'objets clients (Client [] Client = new Client[10]) puis j'enregistre 3 clients pour tester. Ensuite je lance mon interface graphique page1 (new InterfaceAccueil(Client[])). Pourquoi cela ne marche-t-il pas sachant que j'ai bien fait mon constructeur dans ma classe Interface1 rentrant en parametre le tableau de client.

    2) Une fois la liste des clients créent. La personne qui gere les stocks a 2 choix, soit le client est inconnu et dans ce cas il doit saisir ses données une à une (j'ai d'ailleurs un soucis car quand je fais valider pour aller sur mon Interface2, je récupère chaque donnée une à une en la rentrant en parametre pour l'interface 2 mais je préfèrerait créer un client puis envoyer le client en parametre donc même probleme que la question1).



    Merci à tout ceux qui prendront le temps de m'aider. Bonne soirée à vous

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 119
    Points : 192
    Points
    192
    Par défaut
    Bonsoir.

    1) Tu ne donnes pas beaucoup de détails, si tu pouvais nous mettre les parties du code concernées, on pourra mieux t'aider. Qu'entends-tu par « ça ne marche pas » ? Est-ce que ça compile déjà ?
    Si non, quels sont les erreurs du compilateur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Client [] Client = new Client[10] ;
    Tout ça m'a l'air bien trompeur tout ça. Appelle ton tableau « client » (ou tout autre nom différent de Client) tu y verras peut-être plus clair.
    En général, on utilise des noms commençant par une minuscule pour les objets et des noms commençant par une majuscule pour les classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new InterfaceAccueil(Client[])) ;
    Le compilateur ne doit pas aimer ça. Le nom de ton tableau, c'est Client (change le en client), pas Client[].

    2) Je ne comprends pas bien le problème. Cf question 1 ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    Voici le code du constructeur client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public Client (String nom, String prenom, long tel, String adresse){
            NomClient=nom;
            PrenomClient=prenom;
            TelephoneClient=tel;
            AdresseClient=adresse;
            TotalClient=0;
            IdClient=i;
            i++;
        }

    et voila le code de mon main:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Client [] client = new Client[100];
                client[0] = new Client ("nom1", "prénom1", 887, "ville1");
                client[1] = new Client ("nom2", "prénom2", 442, "ville2");
                client[2] = new Client ("nom3", "prénom3", 75, "ville3");
                client[3] = new Client ("nom4", "prénom4", 45, "ville4");
            new InterfaceAccueil(client[]);/
    J'ai alors une erreur à la dernière ligne:
    cannot find symbol
    symbol: constructor InterfaceAccueil(client[])
    location: class gestionStock.InterfaceAccueil

    cannot find symbol
    symbol: class client
    location: class gestionStock.Main

    unexpected type
    required: value
    found: class

    '.class' expected
    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Je ne suis pas sur mais teste ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public Client (String nom, String prenom, long tel, String adresse){
            NomClient=nom;
            PrenomClient=prenom;
            TelephoneClient=tel;
            AdresseClient=adresse;
            TotalClient=0;
            IdClient=i;
            i++;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Client c0 = new Client ("nom1", "prénom1", 887, "ville1");
    Client c1 = new Client ("nom2", "prénom2", 442, "ville2");
    Client c2 = new Client ("nom3", "prénom3", 75, "ville3");
    Client c3 = new Client ("nom4", "prénom4", 45, "ville4");
     
    Client[] monTableau = new Client[100];
         monTableau[0] = c0;
         monTableau[1] = c1;
    ...

  5. #5
    Membre actif Avatar de jiddou
    Inscrit en
    Août 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 247
    Points : 251
    Points
    251
    Par défaut
    Si la signature de ton constructeur etait InterfaceAccueil(Client[])
    L'appel pourrait etre ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new InterfaceAccueil(client);
    puisque client est déjà un tableau.
    l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new InterfaceAccueil(client[]);
    est incorrect

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Ca je ne sais pas, je te donne juste une solution de classe client pas dans un tableau, ensuite tu peux gérer tes clients avec un tableau séparé ou autre conteneur.

    j'ai changer juste un petit bout dans le code (Client monTableau -> Client[] monTableau)

Discussions similaires

  1. Tableau d'objets et constructeur
    Par tendertender dans le forum C++
    Réponses: 4
    Dernier message: 15/01/2013, 14h53
  2. Réponses: 7
    Dernier message: 04/01/2013, 16h25
  3. Réponses: 7
    Dernier message: 27/05/2011, 17h58
  4. pb d'invoke de methode avec un tableau d'objets en parametre
    Par sebastien2222 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 27/09/2006, 10h33

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