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 :

problème d'affichage de tableau d'objet


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Par défaut problème d'affichage de tableau d'objet
    bonjour j'ai fais deux classe {client,voiture} et une classe de test

    la classe client contient un attribut tableau de voitures

    le problème que lorsque je voulais afficher les objets de tableau le console m'affiche toujours "null" pourtant je l'ai rempli d'objet de type voiture.
    merci de m'aidez à résoudre ce petit problème

    voici la classe voiture
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     
    public class Voiture {
     
    	private String immatriculation;
    	private String marque;
    	private float prix;
     
    	public Voiture(){}  //nom de constructeur doit être 1èr lettre majiscule
     
    	public Voiture(String immatriculation ,String marque,float prix)
    	{
    		this.immatriculation=immatriculation;
    		this.marque=marque;
    		this.prix=prix;
    	}
     
    	public String getImmatriculation()
    	{
    		return immatriculation;
    	}
     
    	public void setImmatriculation(String immatriculation)
    	{
    		this.immatriculation=immatriculation;
    	}
     
    	public String getMarque()
    	{
    		return marque;
    	}
     
    	public void setMarque(String marque)
    	{
    		this.marque=marque;
    	}
     
    	public float getPrix()
    	{
    		return prix;
    	}
     
    	public void setprix(float prix)
    	{
    		this.prix=prix;
    	}
     
    	public String  toString()
    	{
    		String chaine;
    		chaine="Immatriculation: "+immatriculation+"\n";
    		chaine="Marque: "+marque;
    		chaine="\n prix: "+prix;
    		return chaine;
    	}
     
    	public boolean equals (Object o)
    	{
    	Voiture v =(Voiture) o;
     
    	return ((this.immatriculation==v.immatriculation)&&(this.marque==v.marque));
     
    	}
     
    }

    voici la classe Client
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    public class Client {
     
    	private String code;
    	private String nom,prenom;
     
    	//Voiture[] voitures;  // si on a pas spécifié la taille
    	Voiture[] voitures=new Voiture [5];
     
    	public Client(){}
     
    	public Client(String code, String prenom ,String nom)
    	{
    		this.setCode(code);
    		this.setPrenom(prenom);
    		this.setNom(nom);
     
    	}
     
    	public Voiture[] getVoitures() {
    		return voitures;
    	}
     
    	// dans cette methode on change de référence vers un autre tableau 
    	public void setVoitures(Voiture[] voitures) {
    		this.voitures = voitures;
    	}
     
    	public void setCode(String code) {
    		this.code = code;
    	}
     
    	public String getCode() {
    		return code;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public void louerVoiture(Voiture v)
    	{
    		for(int i=0;i<voitures.length;i++)
    		{
    			//pour tester les cases de tableau 
    			if(voitures[i] == null)
    			{
    				voitures[i]= v;
    				break;
    			}
    		}
    	}
     
    	public boolean rendreVoiture(Voiture v)
    	{
    		for(Voiture v1: voitures)  // pour chaque voiture de tableau on fait foreach
    		{
    			if(v1.equals(v))
    			{
    				v1=null;
    				return true;
    			}
    		}
    		return false; // sort s'il a parcouru tout le tableau
    	}
     
    	public void afficherVoitures()
    	{
    		for(Voiture v:voitures)
    		  System.out.println(v);
     
    	}
     
     
     
    }
    et la classe de test
    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 TestVoiture {
     
     
    	public static void main(String[] args) {
     
    		Voiture v1= new Voiture("012546","mercedes",50000);
    		Voiture v2=new Voiture("52364","BMW",450000);
     
    		Client c1=new Client("1","ali","mejri");
     
    		c1.louerVoiture(v1);
    		c1.louerVoiture(v2);
     
    		//c1.afficherVoitures();
     
    		c1.rendreVoiture(v2);
     
    		c1.afficherVoitures();
     
     
    	}
     
    }

  2. #2
    Membre éclairé
    Inscrit en
    Février 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 43
    Par défaut
    Bonsoir,

    c'est normal d'avoir des null dans la console car ta un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Voiture[] voitures = new Voiture[5];
    d'où l'affichage des 3 null dans la console.

    Essaye de mettre ce code dans ta class TestVoiture peut être que ca va t'aider a comprendre pourquoi ya l'affichage des null,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static void main(String[] args) {
           System.out.println("taile "+ c1.getVoitures().length);
           for(int i=0 ;i<c1.getVoitures().length;i++){
    	       System.out.println(c1.getVoitures()[i]);
           .....
    }
    et aussi la méthode rendreVoiture ne permet pas de mettre la valeur du tableau a null pour la mettre a null comme tu veux dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public boolean rendreVoiture(Voiture v){
    	for(int i=0;i<voitures.length;i++)
    	{
    		if(voitures[i].equals(v))
    		{
    			voitures[i]=null;
    			return true;
    		}
    	}
    	return false;
    }
    Aussi dans la classe Voiture ton toString permet juste d'affiché le prix car a chaque fois tu modifie la chaine soit tu fais une concaténation ou soit tu fais comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String toString() {
    	return "Voiture [immatriculation=" + immatriculation + ", marque="
    				+ marque + ", prix=" + prix + "]";
    Pour résoudre le problème de l'affichage faut peut être utilisé ArrayList

    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
     
    import java.util.ArrayList;
     
    public class Client {
    	 ....
    	ArrayList<Voiture> voitures = new ArrayList<Voiture>();
            ....
            public boolean rendreVoiture(Voiture v)
    	{
    		voitures.remove(voitures.indexOf(v));
    		return true;
    	}
            ....
            public void louerVoiture(Voiture v)
    	{
    		voitures.add(v);
    	}
            .....
    }
    Cordialement,
    dali.

Discussions similaires

  1. Problèmes d'affichage de tableau d'objets avec swing
    Par amine1980 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 04/04/2011, 23h57
  2. Problème pour remplir un tableau d'objet
    Par bobinouze dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 26/12/2009, 18h55
  3. problème affichage & un tableau d'objet
    Par Echap dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/10/2009, 15h25
  4. [MySQL] problème d'affichage dans tableau avec bdd Mysql
    Par sinifer dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/05/2009, 09h50
  5. Problèmes d'affichage de tableau
    Par fabpeden dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 20/07/2007, 17h49

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