La méthode to string
Résolu
DevGl
Messages postés
136
Date d'inscription
Statut
Membre
Dernière intervention
-
DevGl Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
DevGl Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis entrain de faire un exercice en java , c'est un exercice qui est si simple comme mon prof l'avais dit :o , en tout cas je n'ai aucun idée que c que je dois faire :( ! j'ai cherché mais sans résultats :/ ,
voila une des question que je veux si pouvez m'aider :
Ecrire une class Liquide , contenant simplement la méthode toString() qui retourne le message << je suis un liquide >>
comment le faire ?
c'est quoi la méthode tostring() ? ce que je sais pour le moment c'est la méthode qui nous permet de convertir vers une chaine de caracteres ! mais comment ? je n'ai vrement aucun idée !
est ce que vous pouvez me donner la solution ? s'ils vous plait et avec une explication si vous pouvez ! Et merci D'avance !!
PS : un débutant en java :/ !
je suis entrain de faire un exercice en java , c'est un exercice qui est si simple comme mon prof l'avais dit :o , en tout cas je n'ai aucun idée que c que je dois faire :( ! j'ai cherché mais sans résultats :/ ,
voila une des question que je veux si pouvez m'aider :
Ecrire une class Liquide , contenant simplement la méthode toString() qui retourne le message << je suis un liquide >>
comment le faire ?
c'est quoi la méthode tostring() ? ce que je sais pour le moment c'est la méthode qui nous permet de convertir vers une chaine de caracteres ! mais comment ? je n'ai vrement aucun idée !
est ce que vous pouvez me donner la solution ? s'ils vous plait et avec une explication si vous pouvez ! Et merci D'avance !!
PS : un débutant en java :/ !
A voir également:
- La méthode to string
- Qwerty to azerty - Guide
- Video to video - Télécharger - Conversion & Codecs
- Majuscule to minuscule - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Honestech vhs to dvd - Forum Lecteurs et supports vidéo
3 réponses
Bonjour,
Toutes les classes en Java héritent de la classe Object, celle-ci définit 11 méthodes, même si en pratique on n'en utilises que 4 : equals, hashCode, toString et getClass.
Voir la documentation :
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
Lorsque tu fais un System.out.println(Object obj) c'est obj.toString() qui est affiché.
Sans action de ta part c'est la méthode toString de la classe Object qui est utilisée, ce qui va faire un affichage comme ça : Liquide@123456
Ce que l'on te demande c'est de redéfinir la méthode toString, pour remplacer la méthode par défaut, ainsi en faisant un System.out.println, tu devras obtenir l'affichage << je suis un liquide >>
Toutes les classes en Java héritent de la classe Object, celle-ci définit 11 méthodes, même si en pratique on n'en utilises que 4 : equals, hashCode, toString et getClass.
Voir la documentation :
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
Lorsque tu fais un System.out.println(Object obj) c'est obj.toString() qui est affiché.
Sans action de ta part c'est la méthode toString de la classe Object qui est utilisée, ce qui va faire un affichage comme ça : Liquide@123456
Ce que l'on te demande c'est de redéfinir la méthode toString, pour remplacer la méthode par défaut, ainsi en faisant un System.out.println, tu devras obtenir l'affichage << je suis un liquide >>
Aaah bon , je vous remercie KX , prenant l'exercice que j'ai , je dois faire 2 autres classes , class Café , class Lait , de la meme maniére qu'on a fait la class Liquide , et enfin la 4éme class Tasse.
alors les 2 classes Café , Lait héritent de la class Liquide ,
et la class Tasse ?? il hérite quelle classe ? ?
alors les 2 classes Café , Lait héritent de la class Liquide ,
et la class Tasse ?? il hérite quelle classe ? ?
la derniére question s'il vous plaaaait : dans la class Tasse je dois définier un attribut de type Liquide ! et l'initialiser à l'aide d"un constructeur , dites moi : c'est un attribut de type class alors ??! ce n'est pas bizzard??
Attention de ne pas confondre classe et objet.
Non ce n'est pas bizarre, lorsque tu fais un attribut de type String c'est un objet de la classe String, de même qu'un tableau est un objet aussi (d'une classe un peu particulière).
Il n'y a que 8 types primitifs en Java (boolean, byte, char, short, int, long, float, double), tout le reste ce sont des objets, cela permet d'augmenter l'expressivité du langage. Si on devait dans toutes les classes ne manipuler que des types primitifs on ne s'en sortirait pas.
Non ce n'est pas bizarre, lorsque tu fais un attribut de type String c'est un objet de la classe String, de même qu'un tableau est un objet aussi (d'une classe un peu particulière).
Il n'y a que 8 types primitifs en Java (boolean, byte, char, short, int, long, float, double), tout le reste ce sont des objets, cela permet d'augmenter l'expressivité du langage. Si on devait dans toutes les classes ne manipuler que des types primitifs on ne s'en sortirait pas.
C'est à toi de choisir. Ça dépend de ton constructeur (tu peux en faire plusieurs d'ailleurs).
Par défaut, si tu ne définis pas de constructeur, tu hérites du constructeur de Object, qui ne prends aucun paramètre et ne fais rien. Donc
Si tu définis un constructeur Tasse(Liquide) par exemple, alors tu dois passer en argument un objet de la classe Liquide ou d'une de ses classes filles (Lait, Cafe, etc.)
Éventuellement, mais ça dépasse peut-être le cadre de ton exercice, rien ne t'empêche de rajouter plusieurs liquides dans une tasse, pour un café au lait par exemple, dans ce cas il faudra préciser quelle quantité tu mets de chaque liquide, et par extension, définir la capacité de la tasse.
Pour moi le principal paramètre à passer au constructeur d'un objet Tasse ce serait sa contenance. Mais ça pourrait également être sa matière, sa couleur, son poids, sa forme, etc.
Il n'y a pas qu'une seule manière de faire, cela dépend de l'utilisation que tu en as derrière.
Par défaut, si tu ne définis pas de constructeur, tu hérites du constructeur de Object, qui ne prends aucun paramètre et ne fais rien. Donc
new Tasse()créé un objet Tasse.
Si tu définis un constructeur Tasse(Liquide) par exemple, alors tu dois passer en argument un objet de la classe Liquide ou d'une de ses classes filles (Lait, Cafe, etc.)
Éventuellement, mais ça dépasse peut-être le cadre de ton exercice, rien ne t'empêche de rajouter plusieurs liquides dans une tasse, pour un café au lait par exemple, dans ce cas il faudra préciser quelle quantité tu mets de chaque liquide, et par extension, définir la capacité de la tasse.
Pour moi le principal paramètre à passer au constructeur d'un objet Tasse ce serait sa contenance. Mais ça pourrait également être sa matière, sa couleur, son poids, sa forme, etc.
Il n'y a pas qu'une seule manière de faire, cela dépend de l'utilisation que tu en as derrière.
avant votre reponse j'ai envoye comme parametre la valeur 2 , puis un char , puis float , mais dans tout les cas il m'a donnée des erreurs disant que c'est impossible d'affecter valeurs comme ca pour un objet de type liquide , maintenant j'ai envoyé un objet qui reference la class Liquide
comme ca
Liquide L = new Liquide() ;
aprés :
Tasse T = new Tasse(L) ;
et il m'a pas donnée des erreurs , alors c'est just comme ca??
comme ca
Liquide L = new Liquide() ;
aprés :
Tasse T = new Tasse(L) ;
et il m'a pas donnée des erreurs , alors c'est just comme ca??
Ca peut être correct, à condition que la classe Liquide ait un constructeur sans argument, et l classe Tasse ait un constructeur avec un argument de la classe Liquide.
Cependant tu ne devrais pas instancier directement un Liquide, mais plutôt instancier un objet Cafe ou Lait qui hérite de la classe Liquide.
Cependant tu ne devrais pas instancier directement un Liquide, mais plutôt instancier un objet Cafe ou Lait qui hérite de la classe Liquide.
j'ai compris maintenant , mais est ce que vous avez une idée comme le faire?
Voir aussi : Overriding and Hiding Methods
c'est comme ca System.out.println("je suis un ",obj.toString() ) ?? ; mais ca va me donner Liquide@klk chose . ??
mais pour afficher le message on doit redefinier la methode tostring dans la class Liquide n'est ce pas ??
class Liquide { // extends Object <-- implicite
public String toString() {
return " je suis un "+ koi mettre ici ???
}
}
quoi mettre dedant s'il vous plait ?? :(