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 :

tableau[i]. ToString !


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de amazircool
    Inscrit en
    Décembre 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 497
    Par défaut tableau[i]. ToString !
    salut
    a quoi sert la fonction ToString ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void historiqueOperations ( String type )
    {
    for ( int i = 0 ; i < nbrOperations && i < 10 ; i++ )
    if ( type.equals ( listeOperations[i].getType() ))
    System.out.println ( listeOperations[i].toString()) ;
    }

  2. #2
    Membre expérimenté Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Par défaut
    Bonjour,
    La méthode toString() fait partie de la class Object. Cela sert à renvoyer une représentation des valeurs de l'objet dans une chaine (String). Overrider cette méthode est une bonne habitude.

    Exemple:
    Point p = new Point(4, 5);
    System.out.println(p.toString());
    ou
    System.out.println(" "+p); // équivalent, toString() sera appler aussi
    ouput:
    java.awt.Point[x=4,y=5]

    Si toString() n'a pas été overrider dans la hiérarchie c'est la class object qui renvoie le nom de la class + le hashcode (valeur numérique qui indenfie un objet):

    getClass().getName() + '@' + Integer.toHexString(hashCode())

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Euh ... je vois pas trop en quoi ça répond à la question ...
    Pour moi, les trois codes suivants sont équivalents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(p.toString());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(" "+p);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(p);

  4. #4
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Citation Envoyé par chtig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(" "+p);
    En dehors du fait qu'il y a un espace en trop, je suis pas persuadé que ce soit équivalent aux deux autres au niveau du compilateur. Quelqu'un aurait-il des précisions concernant ce point ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Ils sont presques équivalents au niveau du résultat, mais pas exactement en fait.
    Dans le premier cas tu appelles explicitement la méthode toString(). Si tu l'as définie pour l'objet p tu auras le résultat de ce que tu as mis dans le corps de cette méthode, sinon tu auras le comportement par défaut prévu dans la classe Object.
    Idem dans le 3eme cas, ou on a un appel implicite à toString.

    En revanche, dans le deuxième cas, d'abord tu ajoutes un espace davant le résultat de toString(), et ensuite au niveau de l'instanciation d'objets, tu crées une String pour l'espace, un appel à la méthode toString() qui crée une String, et ensuite seulement tu concaténes les deux. La deuxième méthode est beaucoup plus lourde, et en plus c'est de la bisouille.

    Bon d'accord je chipotte, mais quand même.

  6. #6
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    mais si je fais
    System.out.println(p.toString());
    ou
    System.out.println(p);
    Cela revient au même ?
    A moins que toString soit implémenter comme un accesseur je ne vois pas sont interêt ?

  7. #7
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Celà revient au même en effet, sinon lorsque tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Integer i=new Integer(1);
    System.out.println(i);
    Cela afficherai l'adresse de l'objet, alors que ce n'est pas le cas. On voit bien dans cet exemple l'appel implicite à toString().

    edit: l'interêt de toString est justement là, de pouvoir avoir une représentation écrite d'un objet. Son appel implicite est juste une facilité d'utilisation liée à System.out.print qui doit appeler toString si l'objet passé en paramètre n'est pas un String.

    F.

Discussions similaires

  1. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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