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 :

Un vecteur d'objets de la classe MaStruct (remplace structs en C++)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    CHEF DE PROJET
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : CHEF DE PROJET

    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Par défaut Un vecteur d'objets de la classe MaStruct (remplace structs en C++)
    Bon jour,

    - j'ai crée une classe qui remplace la structure STRUCT en C++,

    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
    Class MaStruct
    {
        private String A;
        private String B;
     
        public MaStruct( String A_, String B_)
        {
            this.A = A_;
            this.B = B_;
         }
     
         public String get_A()
         {
              return this.A;
         }
         //...
    }
    - en suite j'ai crée un vecteur et dans une boucle je l'ai remplie par les objets de cette classe comme suite:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ..
    Vector<MaStruct> vec = new Vector();
    ..
    for (int i = 0 ; i < 5 ; i++ )
    {
          MaStruct maStruct = new MaStruct( "A"+i , "B"+i );
          vect.addElement(maStruct);
    }
    Mon problème est le suivant;

    Quand j'affiche le contenue du vecteur je trouve dans tous ses éléments le même objet:

    A = A5
    B = B5

    Selon ce que j'ai compris, chaque objet crée écrase l'objet crée précédemment, et que tous les entrées du vecteurs pointent sue le même objet.

    Une aide SVP.

  2. #2
    Membre averti
    Profil pro
    CHEF DE PROJET
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : CHEF DE PROJET

    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Par défaut Dans le même sujet
    salut,

    J'ai essayé avec un tableau d'objet dynamique mais la même chose, j'ai trouvet dans tous les éléments du tableau le même (le dernier) objet.

    aidez moi SVP

  3. #3
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Il doit y avoir un truc que tu fais mal soit au remplissage de ta liste soit à l'affichage parce que ça a l'air correct. Peut tu nous montrer le code avec le quel tu rempli et celui avec lequel tu affiches.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Par défaut
    Ce code a pourtant l'air correct
    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
    public class MaStruct {
        String A;
        String B;
     
        public MaStruct(String a, String b) {
            A = a;
            B = b;
        }
     
        public String getA() {
            return A;
        }
     
        public String getB() {
            return B;
        }
     
        /**
         * Returns a string representation of the object
         * @return a string representation of the object.
         */
        public String toString() {
            return "MaStruct<"+this.A+","+this.B+">";    //To change body of overridden methods use File | Settings | File Templates.
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Main {
        public static void main(String[] args) {
     
            Vector<MaStruct> vector = new  Vector<MaStruct>();
            for (int i = 0; i < 5; i++) {
                MaStruct struct = new MaStruct("A"+i,"B"+i);
                vector.addElement(struct);
            }
            for (int i = 0; i < vector.size(); i++) {
                MaStruct maStruct = vector.elementAt(i);
                System.out.println(maStruct);
            }
        }
    }
    affiche
    MaStruct<A0,B0>
    MaStruct<A1,B1>
    MaStruct<A2,B2>
    MaStruct<A3,B3>
    MaStruct<A4,B4>

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2006, 01h20
  2. [MFC] Manipuler un vecteur d'objets
    Par Yellowmat dans le forum MFC
    Réponses: 4
    Dernier message: 13/07/2005, 14h37
  3. Réponses: 11
    Dernier message: 16/10/2004, 18h14
  4. [Debutant][Collection] Création d'un vecteur de type d'une classe
    Par Tao® dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 22/04/2004, 17h06
  5. [MFC]arriere plan pour un objet de la classe CStatic
    Par gabriel knight dans le forum MFC
    Réponses: 13
    Dernier message: 28/07/2003, 10h42

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