La méthode toString

           

La méthode toString est définie dans la classe Object ; en conséquence toutes les classes Java en hérite. La méthode toString définie dans la classe Object ne fait pas grand-chose : elle renvoie le nom de la classe de l'objet concerné suivi de l'adresse de cet objet. Lorsqu'on définit une classe, il peut être très utile de redéfinir la méthode toString afin de donner une description satisfaisante des objets de cette classe. Beaucoup de classes de l'API redéfinissent la méthode toString.

La méthode toString, définie dans la classe Object, admet pour prototype :
    public String toString();
Quand on redéfinit la méthode to String, on fait en sorte qu'elle renvoie une chaîne de caractères servant à décrire l'objet concerné.
Rappelons par exemple la méthode toString figurant dans la classe Compte définie dans un chapitre précédent

public String toString() {
return "Compte numero " + this.numero +
" : proprietaire " + this.proprietaire +
", montant " + this.montant;
}
Pour un compte c dont les attributs numero, proprietaire et montant valent respectivement 2, Irene et 85, l'instruction :
    System.out.prinln(c);
conduit à écrire à l'écran:
    Compte numero 2 : proprietaire Irene, montant 85

Les explications ci-dessous précisent le mécanisme et l'usage de la méthode toString.

La méthode statique valueOf(Object obj) de la classe String appliquée à un objet obj :
- renvoie obj.toString() si obj ne vaut pas null ; si obj référence un objet de la classe A, l'appel à obj.toString() exécute la méthode toString de la classe ancêtre de la classe A la plus proche de A, selon le principe de la liaison dynamique ;
- renvoie null dans le cas contraire.

La méthode toString est employée via la méthode valueOf par :