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

avec Java Discussion :

Notion Object ect..


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 84
    Points : 67
    Points
    67
    Par défaut Notion Object ect..
    Salut, en classe on a commencer a faire les choses avec des multiples classes et d'utiliser le ArrayList. Je n'ai pas trop compris le principe, j'ai beaucoup de difficulté car je n'arrête pas d'afficher des références... Voici mes trois classes:


    Sa semble massif mais en realite il y a plusieurs getters/setters et des constructeurs.
    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    package TravailPerso;
    import java.util.ArrayList;
     
     
    public class Magasin {
     
     
    	private int superficie;
    	private String nom;
    	private String typeDeMagasin;
    	private String langueDuService;
    	private int nbArticle;
    	private ArrayList shipProduit= new ArrayList();
     
    	public Magasin()
    	{
    		superficie=0;
    		nom="";
    		typeDeMagasin="";
    		langueDuService="";
    		nbArticle=0;
    	}
     
    	public Magasin(int superficie,String nom)
    	{
    		this.superficie=superficie;
    		this.nom=nom;
    	}
     
    	public Magasin(int superficie,String nom,String typeDeMagasin,String langueDuService,int nbArticle)
    	{
    		this.superficie=superficie;
    		this.nom=nom;
    		this.nbArticle=nbArticle;
    		this.langueDuService=langueDuService;
    		this.typeDeMagasin=typeDeMagasin;
    		ArrayList shipProduit = new ArrayList(nbArticle);
     
    	}
     
    	public int getSuperficie() {
    		return superficie;
    	}
     
    	public void setSuperficie(int superficie) {
    		this.superficie = superficie;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getTypeDeMagasin() {
    		return typeDeMagasin;
    	}
     
    	public void setTypeDeMagasin(String typeDeProduit) {
    		this.typeDeMagasin = typeDeProduit;
    	}
     
    	public String getLangueDuService() {
    		return langueDuService;
    	}
     
    	public void setLangueDuService(String langueDuService) {
    		this.langueDuService = langueDuService;
    	}
     
    	public int getNbArticle() {
    		return nbArticle;
    	}
     
    	public void setNbArticle(int nbEmploye) {
    		this.nbArticle = nbEmploye;
    	}
    /*
    	public void stockProduit(int nbArticle)
    	{
    		ArrayList shipProduit = new ArrayList(nbArticle);
    	}
    	*/
    	public ArrayList addProduit(Produit produit)
    	{
    		shipProduit.add(produit);
     
    		return shipProduit;
    	}
     
    	public void infoStock(Produit prod)
    	{
    		String article="";
    		System.out.println("Nombre d'article: "+shipProduit.size());
    		System.out.println("Article: "+prod.getNomDuProduit());
    	}
     
    	public void afficherStock()
    	{
     
    		System.out.println("Produit: "+shipProduit);
    	}
    	public ArrayList returnArray()
    	{
    		return shipProduit;
    	}
    	public void Test()
    	{
    		String testAgain="";
    		System.out.println("wtf"+shipProduit.get(1));
     
     
     
    	}
     
     
    }
    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
     
    package TravailPerso;
     
     
    public class Produit {
     
    		private double prix;
    		private double quantite;
    		private String nomDuProduit;
    		private int Codebar;
    		private double poids;
     
     
     
    		public Produit()
    		{
    			  prix=0;
    			  quantite=0;
    			  nomDuProduit="";
    			  Codebar=0;
    			  poids=0;
    		}
     
    		public Produit(String nomDuProduit)
    		{
    			this.prix=0;
    			this.quantite=0;
    			this.nomDuProduit=nomDuProduit;
    			this.Codebar=0;
    			this.poids=0;
    		}
     
    		public double getPrix() {
    			return prix;
    		}
     
    		public void setPrix(double prix) {
    			this.prix = prix;
    		}
     
    		public double getQuantite() {
    			return quantite;
    		}
     
    		public void setQuantite(double quantite) {
    			this.quantite = quantite;
    		}
     
    		public String getNomDuProduit() {
    			return nomDuProduit;
    		}
     
    		public void setNomDuProduit(String nomDuProduit) {
    			this.nomDuProduit = nomDuProduit;
    		}
     
    		public int getCodebar() {
    			return Codebar;
    		}
     
    		public void setCodebar(int codebar) {
    			Codebar = codebar;
    		}
     
    		public double getPoids() {
    			return poids;
    		}
     
    		public void setPoids(double poids) {
    			this.poids = poids;
    		}
     
    }

    Ma classe test avec la main:
    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
     
    package TravailPerso;
    import java.util.ArrayList;
     
     
    public class TestTp1 {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
    		/* Création de Mag1 object de la classe Magasin
    		 * Il est important de noter le chiffre 15. Ce chiffre décide la taille 
    		 * du ArrayList lors de la création Magasin.
    		 */
     
     
     
    		Magasin Mag1 = new Magasin(1000,"Radio Shack","Electronique","Francais",15);
     
    		//Création de prod1 object de la classe Produit
    		Produit prod1 = new Produit("Imprimante Canon");
     
    		/*Utilisation de la méthode placeProduit, avec argument prod1 qui est l'object avec 
    		 *paramètre. Influencer par le constructeur de la classe Produit. Le paramètre
    		 *"Imprimante Canon" modifie le titre du produit.	
    		 */
    		Mag1.addProduit(prod1);
     
    		//Information sur le stock avec prod1 comme paramètre.
    		Mag1.infoStock(prod1);
     
    		//Création d'une deuxième object.
    		Produit prod2 = new Produit("Souris Laser");
     
    		//Il est très important de placer le produit, il rentre dans le ArrayList du Magasin
    		Mag1.addProduit(prod2);
     
     
     
    		Mag1.Test();
     
     
    	}
     
    }

    Alors, je veux afficher mon ArrayList de la classe Magasin au complet dans ma Test.

    Voici ce que j'obtien:
    Nombre d'article: 1
    Article: Imprimante Canon
    Nombre d'article: 2
    Article: Imprimante Canon
    ArticleTravailPerso.Produit@addbf1
    Que puis-je faire pour afficher le ArrayList au complet?

    J'ai essayer les choses suivantes sans succes:

    -Faire une methode qui retourne le ArrayList et d'utiliser celle-ci dans la test.
    -Utiliser toString()
    -Utiliser le get comme a présent...


    Alors aider moi! Merci...

    P.S Les methodes importantes sont dans le bas des codes sources.

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Si j'ai bien compris, tu voudrais afficher le contenu du magasin dans la console, soit lister ta collection shipProduit dans Magasin.

    Comme visiblement cette collection contient des Produit, tu peut déjà redéfinir la méthode toString pour obtenir l'affichage que tu veux.
    Puis écrit une méthode dans Magasin en faisant une itération de la collection avec une boucle for, et tu affiche l'objet retourné par la collection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Produit {
     
    	// tu as le code de ta classe ici
     
    	@Override
    	public String toString() {
    		return "Produit: " + nomDuProduit + ", code: " + Codebar + ", prix: " + prix;
    	}
     
    }
    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
    public class Magasin {
     
    	// tu as le code de ta classe ici
     
    	public void afficheCollectionDansLaConsole() {
    		System.out.println("");
    		System.out.println("Liste des produits du magasin");
    		System.out.println("--------------------------------------------");
    		for (Object o : shipProduit) {
    			System.out.println(o);
    		}
    		System.out.println("--------------------------------------------");
    	}
     
    }
    Modifie ton main :
    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
    public class TestTp1 {
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		
    		/* Création de Mag1 object de la classe Magasin
    		 * Il est important de noter le chiffre 15. Ce chiffre décide la taille 
    		 * du ArrayList lors de la création Magasin.
    		 */
    		 
    		
    		
    		Magasin Mag1 = new Magasin(1000,"Radio Shack","Electronique","Francais",15);
    		
    		//Création de prod1 object de la classe Produit
    		Produit prod1 = new Produit("Imprimante Canon");
    		
    		/*Utilisation de la méthode placeProduit, avec argument prod1 qui est l'object avec 
    		 *paramètre. Influencer par le constructeur de la classe Produit. Le paramètre
    		 *"Imprimante Canon" modifie le titre du produit.	
    		 */
    		Mag1.addProduit(prod1);
     
    		//Information sur le stock avec prod1 comme paramètre.
    		Mag1.infoStock(prod1);
    		
    		//Création d'une deuxième object.
    		Produit prod2 = new Produit("Souris Laser");
    		
    		//Il est très important de placer le produit, il rentre dans le ArrayList du Magasin
    		Mag1.addProduit(prod2);
    		
    	
    		
    		Mag1.afficheCollectionDansLaConsole();
    		
    		
    	}
    
    }
    Tu obtiens la sortie suivante :

    Nombre d'article: 1
    Article: Imprimante Canon

    Liste des produits du magasin
    --------------------------------------------
    Produit: Imprimante Canon, code: 0, prix: 0.0
    Produit: Souris Laser, code: 0, prix: 0.0
    --------------------------------------------

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 84
    Points : 67
    Points
    67
    Par défaut
    Merci beaucoup!

    Je ne comprend pas la signification de

    for( Object o : ArrayList)

    Object fait référence à la super classe Object?

    : fait quoi au juste?

    Pourquoi doit-on redéfinir toString?

    Pourquoi doit-je faire ces modifications pour enlever les références?

  4. #4
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (Type variable : Iterable)
    C'est la boucle étendu, tu peut aussi l'utiliser avec des tableaux.

    Object fait référence à la super classe Object ?
    Oui. Comme ton ArrayList peut contenir tout et n'importe quoi, on list des Object et non des Produit.
    Si tu utilise les generics cela n'est plus nécessaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<Produit> list = new ArrayList<Produit>();
    for (Produit p : list) {
         ...
    }
    Pourquoi doit-on redéfinir toString?
    Pourquoi doit-je faire ces modifications pour enlever les références?
    Tu doit justement redéfinir toString() pour pouvoir afficher en console autre chose que les références de tes objets.
    L'affichage des références est en quelque sorte un standard, puisque personne (les ingé de chez Sun) ne sait à l'avance ce que tu vas devoir afficher !
    Cela dit tu peut passer par une autre méthode de ton cru pour afficher ces infos, mais tu devra l'appeler explicitement, alors que l'appel à toString() est implicite quand tu fait référence à un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(monObjet);
    equivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(monObjet.toString());
    Mais tu peut aussi faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(monObjet.afficheMesInfos());

Discussions similaires

  1. Réponses: 30
    Dernier message: 30/06/2009, 13h04
  2. Notion de boucles dans Business Object
    Par lionelEIGIP dans le forum Deski
    Réponses: 1
    Dernier message: 08/04/2004, 11h26
  3. Réponses: 8
    Dernier message: 21/11/2003, 18h38
  4. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21
  5. Notion d'algorithme
    Par gtr dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/12/2002, 11h46

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