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 :

[Vector/ArrayList] Ajouter/Afficher un element de type objet specifique


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 7
    Points
    7
    Par défaut [Vector/ArrayList] Ajouter/Afficher un element de type objet specifique
    Bonjour,

    J'ai un souci avec pour obtenir/afficher des objets de meme type et qui ont des valeurs differentes.
    Pour etre bref, j'ai simplifie 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
     
    public class Reel {
    	private static float nbReel;
    	public Reel() {}
    	public Reel(float unNbReel) {
    		nbReel = unNbReel;
    	}
    	public static void setNbReel(float unNbReel) {
    		nbReel = unNbReel;
    	}
    	public static float getNbReel() {
    		return nbReel;
    	}
    }
    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
     
    import java.io.*;
    import java.util.*;
    public class TestClassMain {
    	public static void main(String[] args) {		
    		Reel monReel = null;
    		ArrayList maListe = new ArrayList();
    		maListe.add(new Reel(7));
    		maListe.add(new Reel(9));
    		monReel = (Reel) maListe.get(0);
    		System.out.println(monReel.getNbReel());
    		monReel = (Reel) maListe.get(1);
    		System.out.println(monReel.getNbReel());
    	}
    }
    A la sortie, j'obtiens : 9.0 et 9.0
    Alors que je suis cense obtenir : 7.0 et 9.0

    Pourquoi ? Je ne comprends pas !
    Il prend que la derniere valeur... Y a-t-il une histoire de reference !? Je pense pas mais bon...

    Notez que :
    - si vous mettez des String differents, a la sortie, on a ce qu'on veut !
    - si vous mettez UN objet d'un autre type en plus, le programme l'affichera avec la valeur desiree !

    Bref, pour faire court, le programme affiche que la derniere valeur d'un type d'objet a chaque fois qu'il trouve l'objet d'un meme type dans le tableau d'ArrayList.

    Merci d'avance pour vos aides,
    Bye,

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Vu que tu as déclaré la variable nbReel en static, cela est tout à fait normal. Cette variable sera commune à TOUTES les instances de la classe Reel. C'est donc toujours la dernière affectation qui sera retenue, ce pour toutes tes instances.

  3. #3
    Membre actif Avatar de Betatesteur
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Points : 248
    Points
    248
    Par défaut
    Et si tu modifies la valeur de cette variable dans nimporte quelle instance d'un objet Reel, la valeur sera également modifiée pour tous les objets Reel
    Les variables déclarées avec le modificateur static sont appellés variables de classe
    @++
    Le monde du DevLOpPEUR....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    En train, il admire le scrolling du paysage..
    Il rédige ses chèques en héxadécimal..
    Sa dernière pensée avant de s'endormir est "shutdown completed"...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/05/2009, 23h41
  2. Quel type de liste choisir ? (Vector, ArrayList, ...)
    Par dinver dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 19/01/2006, 12h09
  3. afficher un element avant un autre
    Par hm19000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/10/2005, 22h35
  4. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33
  5. Réponses: 3
    Dernier message: 26/05/2004, 22h27

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