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 :

Interrogtion sur "toString()"


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut Interrogtion sur "toString()"
    Bonjour,
    J'ai une classe Livre qui étends Article. Avec une constructeur dans la classe Livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public LivreC3(int reference,String designation,double 
        		 prix,String isbn,int nbPages,PersonneC auteur) 
        		          {   
        		              super(reference,designation,prix); 
        		              setIsbn(isbn); 
        		              setNbPages(nbPages); 
        		              setAuteur(auteur);
        		          }
    que j'utilise dans une classe Main pour instancier des objets Livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    l=new LivreC3();
            l.setReference(005);
            l.setDesignation("Le Pigeon3");
            l.setPrix(35.54);
            l.setIsbn("1245879218");
            l.setNbPages(375);
            l.setAuteur(p=new PersonneC("Zone3","Eric3",LocalDate.of(1983, 12,11),l.getReference(),l.getDesignation(),l.getPrix()));
    J'ajoute tous ces objets dans une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listArticle.addAll(p.getoeuvresList());
    ou p est l'objet qui instance la classe Personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class PersonneC  
     { 
         private String nom; 
         private String prenom; 
         private LocalDate date_nais; 
         private ArrayList<ArticleC> oeuvresList; // p.getoeuvresList()
    ...
    A la fin de toutes les instanciations je parcours la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Article a;
    a=new ArticleC();
    Iterator<ArticleC> itA;
            itA=listArticle.iterator();
            while (itA.hasNext())
            {
            	a=  itA.next();
            	System.out.println("Liste des Article(s)itA " + a.toString());
           
            } 
            System.out.println("il y a  " + listArticle.size() + " articles(s) dans la liste");
    La particularité est que je stipule et que le programme va sur la toString de la classe Livre qui étends la classe Article
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     public String toString() 
            	          {       	            
            	              return super.toString() +
            	        " Nbre Pages  : "	  + getNbPages() +
            	               " ISBN : " + getIsbn() +
            	              " Auteur :  " + getAuteur();	       	              
            	          }
    car si j'enlève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return super.toString()
    Il donne comme résultat :

    Liste des Article(s)itA Nbre Pages : 254 ISBN : 1245879215 Auteur : Eric3 Zone3 1983-12-11
    Liste des Article(s)itA Nbre Pages : 254 ISBN : 1245879215 Auteur : Eric3 Zone3 1983-12-11
    Liste des Article(s)itA Nbre Pages : 254 ISBN : 1245879215 Auteur : Eric3 Zone3 1983-12-11
    Liste des Article(s)itA Nbre Pages : 275 ISBN : 1245879217 Auteur : Eric3 Zone3 1983-12-11
    Liste des Article(s)itA Nbre Pages : 375 ISBN : 1245879218 Auteur : Eric3 Zone3 1983-12-11
    il y a 5 articles(s) dans la liste

    Il doit y avoir une raison, si quelqu'un la connait MErci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    ben, parce que ce sont des Livres que tu as créés avec new Livre(), et que derrière tu demandes à exécuter leurs méthodes toString(), donc ils exécutent celle de leur classe, la classe Livre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Hello,

    ben, parce que ce sont des Livres que tu as créés avec new Livre(), et que derrière tu demandes à exécuter leurs méthodes toString(), donc ils exécutent celle de leur classe, la classe Livre.
    ****************************************
    Merci pour ta réponse, c'est dont ce que je me doutais un peu mais curieux quand même comme logique car je demande dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Article a;
    a=new ArticleC();
    Iterator<ArticleC> itA;
            itA=listArticle.iterator();
            while (itA.hasNext())
            {
            	a=  itA.next();
            	System.out.println("Liste des Article(s)itA " + a.toString());
     
            } 
            System.out.println("il y a  " + listArticle.size() + " articles(s) dans la liste");
    d'utiliser le toString de a donc de Article...
    Bon en tout cas merci à+

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    C'est tout le principe du polymorphisme, l'un des mécanismes principaux de la programmation orientée objet.

    Quand on demande à exécuter une méthode, on le demande à l'objet sur lequel on appelle cette méthode. Et cet objet va appeler sa méthode à lui. Les variables qui l'ont impliqué ne rentrent pas en compte.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est tout le principe du polymorphisme, l'un des mécanismes principaux de la programmation orientée objet.

    Quand on demande à exécuter une méthode, on le demande à l'objet sur lequel on appelle cette méthode. Et cet objet va appeler sa méthode à lui. Les variables qui l'ont impliqué ne rentrent pas en compte.
    ***************************************************
    MErci à toi pour l'info

  6. #6
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par xeron33 Voir le message
    Bonjour,
    J'ai une classe Livre qui étends Article. Avec une constructeur dans la classe Livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public LivreC3(int reference,String designation,double 
        		 prix,String isbn,int nbPages,PersonneC auteur) 
        		          {   
        		              super(reference,designation,prix); 
        		              setIsbn(isbn); 
        		              setNbPages(nbPages); 
        		              setAuteur(auteur);
        		          }
    que j'utilise dans une classe Main pour instancier des objets Livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    l=new LivreC3();
            l.setReference(005);
            l.setDesignation("Le Pigeon3");
            l.setPrix(35.54);
            l.setIsbn("1245879218");
            l.setNbPages(375);
            l.setAuteur(p=new PersonneC("Zone3","Eric3",LocalDate.of(1983, 12,11),l.getReference(),l.getDesignation(),l.getPrix()));
    question annexe (sans rapport avec ta question initiale): tu as un constructeur de LivreC3 tout ce qu'il y a de raisonnable... et tu utilises ensuite un constructeur sans paramètres ... Il y a un raison pour avoir un tel constructeur? (et pour l'utiliser ainsi?)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    question annexe (sans rapport avec ta question initiale): tu as un constructeur de LivreC3 tout ce qu'il y a de raisonnable... et tu utilises ensuite un constructeur sans paramètres ... Il y a un raison pour avoir un tel constructeur? (et pour l'utiliser ainsi?)
    ************************************************************
    Non pas de raison, je dois dire que je me suis fais moi même la remarque quelque temps après, mais j'ai laissé comme ça, en effet je pouvais l'écrire autrement...
    Merci pour ta contribution
    A+

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

Discussions similaires

  1. UPDATE en ajoutant un 0 sur un champ de type "char"
    Par doum2 dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/03/2006, 14h22
  2. Problème sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/03/2005, 11h47

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