La méthode to string
Résolu/Fermé
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
-
Modifié par 00lina00 le 1/11/2014 à 22:29
DevGl Messages postés 136 Date d'inscription samedi 23 novembre 2013 Statut Membre Dernière intervention 16 mai 2015 - 2 nov. 2014 à 19:12
DevGl Messages postés 136 Date d'inscription samedi 23 novembre 2013 Statut Membre Dernière intervention 16 mai 2015 - 2 nov. 2014 à 19:12
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 - Télécharger - Édition & Programmation
- 1 to ✓ - Forum Windows
3 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
1 nov. 2014 à 21:40
1 nov. 2014 à 21:40
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 >>
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
1 nov. 2014 à 23:05
1 nov. 2014 à 23:05
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 ? ?
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
1 nov. 2014 à 23:08
1 nov. 2014 à 23:08
D'un point de vue mécanique, elle héritera forcément de la classe Object, mais ce n'est pas la peine de le préciser, c'est le comportement par défaut.
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
1 nov. 2014 à 23:11
1 nov. 2014 à 23:11
Aaah bon , par ce que personnelemnt j'ai pensé qu'elle n"hérite ni de la class Lait , liquide , ou bien café , alors comme vous dites , c'est la class Objet ! Merciiiiii grave KX ! enfin c'est résolu !
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
1 nov. 2014 à 23:17
1 nov. 2014 à 23:17
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??
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
1 nov. 2014 à 23:25
1 nov. 2014 à 23:25
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.
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
Modifié par DevGl le 1/11/2014 à 23:41
Modifié par DevGl le 1/11/2014 à 23:41
Aaaah bon , alors quand je veux l'initialiser , quel valeur je dois le donner ???
par exemple :
Tasse T = new Tasse ( ) ? ?? mettre quoi entre les parentheses alors? si elle est de type liquide
par exemple :
Tasse T = new Tasse ( ) ? ?? mettre quoi entre les parentheses alors? si elle est de type liquide
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
1 nov. 2014 à 23:49
1 nov. 2014 à 23:49
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.
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
Modifié par DevGl le 2/11/2014 à 00:14
Modifié par DevGl le 2/11/2014 à 00:14
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??
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
2 nov. 2014 à 11:33
2 nov. 2014 à 11:33
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.
Modifié par DevGl le 1/11/2014 à 21:45
j'ai compris maintenant , mais est ce que vous avez une idée comme le faire?
1 nov. 2014 à 21:52
Voir aussi : Overriding and Hiding Methods
1 nov. 2014 à 21:58
c'est comme ca System.out.println("je suis un ",obj.toString() ) ?? ; mais ca va me donner Liquide@klk chose . ??
1 nov. 2014 à 22:06
Modifié par DevGl le 1/11/2014 à 22:20
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 ?? :(