La méthode toString()

[Résolu/Fermé]
Signaler
Messages postés
41
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
23 mai 2016
-
 melvil -
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) :)
A voir également:

9 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
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

195
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

merci mec t'es un reuf
Messages postés
41
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
23 mai 2016
4
Merci beaucoup sisoft2008 ,
tant qu'il existe encore des amis comme vous, on a que vivre dans le bien-être.

A+
T'inquiètet gros sisi la famille toujourss là RAIIIIIIIIII
Messages postés
14
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
1 décembre 2008

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".
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.
Messages postés
41
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
23 mai 2016
4
Qu'est ce que tu veux dire par la ligne : monObjet.setName("toto"); ?


setName() est une autre methode ?
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
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)
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...
il faut telecharger l'eclipse java le camp