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 :

Utilisation d'un tableau d'une autre classe


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Par défaut Utilisation d'un tableau d'une autre classe
    Salut,
    J'ai rencontrer un problème lors de l'utilisation d'un tableau d'une class1 dans une autre class2.Dans la class1, j’incrémente la taille d'un vecteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public double[] nbActu={0.0};
    /////////////////////////
    Person p = new Person(this,0);
    VecPerson.add(p);
    nbActu[j] = VecPerson.size();//stocker la taille dans un tab
    afficherNombre(nbActu);  //affichage de res
    j++;
    J'ai utiliser la fonction afficherNombre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	 public void afficherNombre(double[] nbActu2){
    for(int i=0; i<nbActu2.length;i++){
    System.out.println("la taille dans la class1 cas "+i+" est "+nbActu2[i]);
    }
    }
    rien que pour vérifier que l'ajout se passe bien.
    a la fin j'ai ajouté un Getters:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public double[] getN()
    {
    return nbActu;
    }
    Maintenant dans la classe2, j'ai instancier l'objet de la class1, puis j'ai récupérer la taille du tableau en utilisant le getters, comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public.....
    pe= new PorteEntrer();//   PorteEntre est le nom de la class2
     System.out.println("la taille dans la class2  est "+pe.getN().length);
    voici la résultat:
    la taille dans la class1 est 2.0
    la taille dans la class1 est 3.0
    la taille dans la class1 est 4.0
    la taille dans la class1 est 5.0

    la taille dans la class2 est 1 ????

    Dans la class1 j'affiche les taille correctement, mais dans la class2, elle m'affiche toujours un '1'. PK?
    merci d'avance.

  2. #2
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Salut, on peut voir le code du constructeur PorteEntrer() ?
    Sinon ce serait sympa d'indenter le code, merci.

  3. #3
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Évites les doubles post

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    Évites les doubles post
    Le 1er post est un erreur, je n'ai pas trouver une moyenne pour le supprimer.
    oui, j'ai ajouté un double, mais la résultat reste la même.

    Salut, on peut voir le code du constructeur PorteEntrer() ?
    Sinon ce serait sympa d'indenter le code, merci.
    voici le constructeur:
    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
     
    public PorteEntrer(int ind, int xx, int yy, Simulation s, Color c, int nbPerson, double tab)
    		{
    	  sim = s;
    	  couleur = c;
    	  angle = tab;
    	  Indice = ind;
    	  X = xx;
    	  Y = yy;
    	  nombrePerson=nbPerson;
    	  StockNourriture = 0;
    	  maxPerson = 400;
    	  compteur = 0;
     
    VecPerson = new Vector();
    for (int i=0;i<nbPerson;i++)  VecPerson.add(new Person(this, 0));
     
    		}
    public PorteEntrer(){
     
    }

  5. #5
    Membre éprouvé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 61
    Par défaut
    Citation Envoyé par karamovic Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    public double[] nbActu={0.0};
    et donc sa taille est de 1 ? et comme je pense que ton code sait compter, c'est que tu dois faire un miss entre l'appel de ton afficherNombre() et celui de ton pe.getN.length ?

    Je ne vois pas d'appel à afficherNombre dans ton code? il est donc dans l'autre classe? à quel endroit? C'est toujours dur quand y'a des tout ptit bouts de codes comme ça pour y voir clair ...

    Comme ça à regarder, je dirais que tu crée un objet UNO, que tu le nourri et que tu lui fais afficher les valeurs et qu'ensuite dans ta deuxième classe, tu crée un objet DEUXIO que tu ne nourri pas et à qui te demande la taille de nbactu, qui est de 1, donc

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Par défaut
    Citation Envoyé par CrikTeCroque Voir le message
    et donc sa taille est de 1 ? et comme je pense que ton code sait compter, c'est que tu dois faire un miss entre l'appel de ton afficherNombre() et celui de ton pe.getN.length ?

    Je ne vois pas d'appel à afficherNombre dans ton code? il est donc dans l'autre classe? à quel endroit? C'est toujours dur quand y'a des tout ptit bouts de codes comme ça pour y voir clair ...
    j'ai utilisé la fonction afficherNombre(), seulement pour faire la comparaison entre les deux classes et pour vérifier que l'ajout se passe bien dans la 1er.
    l'appelle c'est directement après l'ajout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    VecPerson.add(p);
    nbActu[j] = VecPerson.size();
    afficherNombre(nbActu);/////////////////////ICI///////////////////
     j++;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/06/2014, 13h26
  2. Utilisation d'un tableau d'une autre classe
    Par karamovic dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/09/2013, 11h15
  3. Appeler un tableau dans une autre classe
    Par jasinski13 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/05/2011, 14h43
  4. [PHP 5.3] [POO]Utilisation de methodes venant d'une autre classe
    Par yann18 dans le forum Langage
    Réponses: 5
    Dernier message: 25/03/2011, 17h16
  5. recuperation tableau d'une autre classe
    Par invictus25 dans le forum C#
    Réponses: 6
    Dernier message: 15/03/2011, 16h00

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