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 :

Comment afficher un vector


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut Comment afficher un vector
    Bonjour ,
    Je vous soumet un problème qui me semblait clair mais qui maintenant ne l'est plus.
    J'ai deux classes Client et magasin .
    Le magasin contient la liste de tous les clients, je peux ajouter un client ou afficher la liste des clients.Voici le code des deux classes :
    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
     
    public class Client {
     
        // Les attributs
        String nom ;
     
        // Le constructeur
        public Client(String x)
        {
            nom = x ;
        }
     
        // Redéfintion de la méthode toString
        public  String toString()
        {
            return nom ;
        }
    Et pour le magasin
    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
     
    public class Magasin {
     
        // Les attributs
        Client client ;
        Vector liste_clients ;
     
        // Le constructeur
        public Magasin()
        {
            liste_clients = new Vector() ;
        }
     
        // Creer un client
        public void Ajouter_client(Client x)
        {
            client = new Client() ; //????????????
            liste_clients.addElement(x) ;
        } 
     
        // Afficher la liste des clients
        public void Afficher_liste()
        {
            for(int i=0;i<liste_clients.size();i++)
            {
                 client = (Client)liste_clients.elementAt(i) ;
                String s = client.toString() ;
                System.out.println(s);
     
            }
        }
     
    }
    J'ai deux questions :

    1: Comment dois je faire pour ajouter un client il faut faire appel au constructeur de client enfin je sais pas je suis un peu perdu.
    2 : Que pensez vous de ma méthode Afficher_liste est ce la méthode pour afficher un vector.J'ai fait la même chose dans un autre exo et j'ai une excetion java.lang.ClassCastException : ma_classe cannot be cast to java.lang.String.

    Merci de m'avoir lu jusqu'au bout.Il y a des notions de cours qui ont du m'echapper.

  2. #2
    Membre chevronné
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Par défaut
    Hello.

    Indépendamment du problème:
    a) éviter les Vector, préférer (par exemple) les ArrayList
    b) jeter un oeil aux convention de nommage Sun ( http://java.sun.com/docs/codeconv/ ). Quand je vois une méthode qui s'appelle Afficher_liste ça pique les yeux

    Sinon pour la question 1), un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste_clients.addElement(x);
    suffit comme corps de ta méthode Magasin.Ajouter_client(Client).

    Le client que tu as comme attribut de la classe Magasin ne doit pas exister à ce niveau-là: il faut déclarer les variables avec le scope le plus spécifique possible. Cette variable servant uniquement à parcourir la liste lors de l'affichage, c'est dans la méthode d'affichage qu'il faut la déclarer.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci d'avoir répondu aussi vite :
    Le client que tu as comme attribut de la classe Magasin ne doit pas exister à ce niveau-là
    Ou donc est ce que je crée ce client ?
    Parce que pour un magasin j'ai plusieurs clients.Donc je ne peux pas le mettre dans le constructeur de Magasin.
    C'est pour ça que j'ai utilisé une méthode ajouter_client qui ajoute un client
    et l'inscrit dans la liste des clients.

    2: J'ai imprimé la doc java pour les conventions d'écriture je te remercie et je suis en train de lire un petit doc sur les ArrayList.
    Mais je voulais savoir si pour afficher un vector je suis obligé de passer par un toString() .Sachant qu même si l'usage de Vector
    est deprecated on l'utilise quand même en TP.

    Merci d'avance

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Sachant qu même si l'usage de Vector est deprecated on l'utilise quand même en TP.
    Quelle hérésie !

  5. #5
    Membre chevronné Avatar de desert
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 414
    Par défaut
    En gros :
    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
    public class Magasin {
        List<Client> listeClients;
     
        public Magasin() {
            listeClients = new ArrayList<Client>();  
        }
        public void ajouterClient(Client x) {
            listeClients.add(x);
        } 
        public void afficherListe() {
            for(int i = 0; i < liste_clients.size(); i++) {
                String s = listeClients.get(i).toString();
                System.out.println(s);
            }
        }
    }
    Et dans une autre classe par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Magasin m = new Magasin();
    Client c1 = new Client("test");
    Client c2 = new Client("test1");
    m.ajouterClient(c1);
    m.ajouterClient(c2);
    m.afficherListe();

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Ok merci beaucoup pour toutes les réponses.J'y vois plus clair maintenant
    je peux fermer la discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/03/2010, 00h20
  2. Réponses: 4
    Dernier message: 19/10/2006, 16h24
  3. [debutant] Comment afficher un integer a l'ecran
    Par Johngame dans le forum DirectX
    Réponses: 1
    Dernier message: 05/06/2003, 20h35
  4. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 00h38
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

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