Les Allergies
Alimentaires
Posez votre question Signaler

La méthode toString() [Résolu]

soufian1364 46Messages postés 26 septembre 2007Date d'inscription 9 janvier 2011Dernière intervention - Dernière réponse le 31 déc. 2010 à 23:17
Salut tout l'monde,
En clair, mon problème c'est de savoir :
1- à quoi sert la methode toString() en Java.
2- Comment l'utiliser.
je ss debutant, c'est vrai,.. mais je crois qu'on est tous passé par là,
Merci de bien vouloir illustrer un/des exemple(s) :)
Lire la suite 

La méthode toString() »

7 réponses
Réponse
+68
moins plus
La méthode toString() en java permet de donner un aperçut d'un objet instancié.
C'est à dire que cette méthode va te retourner une chaine de caractère représentant ton objet : affichage de la valeur des propriétés par exemple.
Comment l'utiliser ?
Il faut d'abord que tu implémente cette fonction dans la classe où tu souhaite utiliser le toString. Implémenter = code la fonction toString dans cette classe.
Ta fonction devra avoir le squellette suivant :

public String toString ( ){
    return "";  // --- Ici completer avec les infos de ta classe que tu souhaite afficher
}


Ensuite pour l'utiliser, comme elle te retourne une string, si tu souhaite afficher la représentation d'un objet instancié de cette classe, il te suffira de faire :

MaClasse monObjet = new MaClasse()
 monObjet.setName("toto"); // --- Si ta classe à une propriété 'name' et que tu as fais une méthode public pour y accèder / setter la valeur
System.out.println(monObjet.toString()); // Pour afficher ton objet

Ajouter un commentaire
Réponse
+18
moins plus
Merci beaucoup sisoft2008 ,
tant qu'il existe encore des amis comme vous, on a que vivre dans le bien-être.

A+
Ajouter un commentaire
Réponse
+10
moins plus
salut soufian1364,
setName() est en fait un setter (c'est une méthode que tu défini qui te permet de modifier un attribut de ton objet).
Donc dans ce cas setName("toto") te permet de modifier l'attribut name dont kij_82 a parlé dans son post
en y mettant "toto".
Ajouter un commentaire
Réponse
+4
moins plus
setName sert si tes attributs sont private ou non.Si ils ne le sont pas,mets-les en private car tout attribut doit être en private.Les get et les set sont des méthodes qui permettent d'accéder à ces attributs dans une fonction.
Exemple dans ta classe il y aura :
public class Personne
{
private String Nom;

public String getNom()
{
return Nom;
}

public void setNom(String nom)
{
Nom= nom;
}
}

et dans ton main si tu veux changer le nom il faut faire:

Personne unePersonne = new Personne();//Instancie un objet de la classe Personne
unePersonne.setNom("toto");//Mettre toto dans ton string nom
System.out.println("Le nom de la personne est : "+unePersonne.getNom());//Affiche le nom de la personne via ta fonction getNom qui te retourne le nom du string.
Ajouter un commentaire
Réponse
+3
moins plus
Exactement, comme le souligne Matkill, tout attribut dans une classe, devrait par défaut être en visibilité 'private'. Après, selon les programmes et choix de gestion il est possible d'en passer certains en 'public' ou 'protected'.

La raison de toujours mettre les attributes d'une classe en privé (et de créer les accesseurs qui vont bien - getter et setter - qui eux au passage pourront être public, protected ou private aussi) est simple: sécurité du programme, ainsi que propreté d'écriture du code / maintenabilité.
Si un programme propose les attributs de toutes les classes en public (visible de n'importe quelle autre classe), on ne peut plus contrôle l'accès à ces propriétés (et faire par exemple des contrôles de format dessus au moment de les setter avec une valeur.

Et puis quand on programme, c'est tout de suite plus lisible pour nous ou une personne extérieur n'ayant pas fait le programme : toute propriété de classe sera accédée par des getters / setters, les autres variables seront nommée "normalement" (ex: myValue, personnellement, pour les variables locale, je précède toujours d'un 'my' dans le nom de la variable, question d'organisation imposée par ma boite, mais qui au final est pas si mal que ça)
Ajouter un commentaire
Réponse
+3
moins plus
setName() est un modificateur : il permet de changer le name de ton objet. Pour connaitre ton name, il faut utiliser le getName(), qui est un accesseur.
De plus, pour Matkill, il est préférable de nommer ses attributs en commençant par des minuscules...
Ajouter un commentaire
Réponse
+0
moins plus
Qu'est ce que tu veux dire par la ligne : monObjet.setName("toto"); ?


setName() est une autre methode ?
Ajouter un commentaire
Ce document intitulé « la méthode toString() » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?