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 :

[DEBUTANT]toString pour renvoyer un résultat


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut [DEBUTANT]toString pour renvoyer un résultat
    Bonsoir,
    j'ai pour comprendre l'héritage par la pratique fait quelques fichier qui ne renvoie pas les chaine attendu et me laisse perplexe quant au fonctionnement difficille à comprendre ?
    Ma super class:
    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
    import java.util.Date;
     
    public class Document {
    //////////////////////////////////////	
    	String titre;
    	Date creationDate=new Date();
    //////////////////////////////////////	
    	public Document() {
     
    	}
    //////////////////////////////////////	
    	public Document(String t) {
     
    		titre=t;
    	}
    ////////////////////////////////////////
    	  public String getTitre () {
    		  return titre;
    	  }
    	  public String toString() {
    		 return (creationDate + " \t");
    	  }
     }
    // en mettant return que fait la méthode toString()
    Je ne comprend pas sont utilité et utilisation
    d'autant que mes autres class hérite de Document comme :

    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
    public class Cassette extends Document {
    	// variable d'instance
    	String auteur;
    	int duree;
    // constructeur à l'aide des deux attributs	
    	public Cassette (String a, int d) {
    		auteur= a;
    		duree = d;
    	}
    // en mettant return que fait la méthode revient-elle à la méthode 
    	//document .java ?
     
    	public String envoieChaine() {
    		return super.toString() + auteur + duree;
    	}
    }
    chacun sont dans un fichier distinct
    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 Periodique extends Document {
    	String frequence;
    	int page;
    	String titre;
     
    	public Periodique(String t, String f, int p) {
    		frequence= f;
    		titre= t;
    		page= p;
    	}
     
    	public String envoieChaine() {
    		return super.toString() + titre + frequence  + " entrée : " + page;
    	}
    }
    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
    public class Livre extends Document {
     
    	String auteur;
    	String editeur;
    	int page;
     
    	public Livre (String a, String e, int p) {
    		auteur= a;
    		page = p;
    		editeur= e;
    	}
     
    	public String envoieChaine() {
    		return super.toString() + page + editeur;
    	}
     
    }
    Et le 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
    public class Main {
    	public static void main(String[] args) {
    		Document doc1=new Document("document n°1");
     
    		System.out.println(doc1);	
     
    		System.out.println("le titre est " + doc1.getTitre());
     
    		Periodique per1=new Periodique("peur sur la ville", " eee", 1);
    		Livre liv1=new Livre("Débuter en java", "Premier livre", 1);
    		Periodique per2=new Periodique("java hebdo", " mensuel", 2);
    		Periodique per3=new Periodique("java mensuel", " zzzzzzzz", 3);
    		System.out.println(per1);
    		System.out.println(per2);
    		System.out.println(per3);
    		}
    }
    Qui lui ne m'affiche pas les chaine de caractères juste la date
    Mon Oct 15 20:15:28 GMT+01:00 2007
    le titre est document n°1
    Mon Oct 15 20:15:28 GMT+01:00 2007
    Mon Oct 15 20:15:28 GMT+01:00 2007
    Mon Oct 15 20:15:28 GMT+01:00 2007
    Merci de votre patiente

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Allons y pas à pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(doc1);
    ça appèle Document.toString() Mon Oct 15 20:15:28 GMT+01:00 2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("le titre est " + doc1.getTitre());
    le titre est document n°1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(per1);
    per1 est dfe type Periodique et est instancié par Periodique, mais cette classe ne redéfinit pas toString(), on passe à la classe mère == Document qui elle redéfinit toString() on appèle Document.toString() Mon Oct 15 20:15:28 GMT+01:00 2007

    De même pour per2 et per3.

    Bonne chance.

    Plus d'infos dans les cours Java : http://java.developpez.com/cours/
    Le cours Java de jmdoudou est très adapté : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Juste pour compléter ...

    tout simplement toString est la méthode qui est appelée lorsque tu demandes à afficher un Objet sous forme de string.

    Tous les Objets peuvent appeler toString car elle est définie dans la classe Object. Le fait de la redéfinir te permet simplement de préciser comment tu souhaites que l'objet soit affiché ...

    Si tu ne redéfini pas toString, c'est la méthode de la classe Object qui est appelée (enfin de la classe supérieure à ton objet où est définie toString) et la plupart du temps elle affiche l'adresse mémoire de l'objet ...

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/12/2011, 22h46
  2. table dual pour renvoye un résultat
    Par lazzeroni dans le forum Oracle
    Réponses: 16
    Dernier message: 15/06/2006, 16h26
  3. [Debutant]Probleme pour Debugger sours JCreator
    Par Flam dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 1
    Dernier message: 12/05/2004, 19h27
  4. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21
  5. [debutant] Probleme pour dessiner un simple cube
    Par scorpiwolf dans le forum DirectX
    Réponses: 6
    Dernier message: 02/07/2003, 20h29

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