Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Méthode toString() | Classes
Java Étendu
course content

Contenu du cours

Java Étendu

Java Étendu

1. Structure Java Approfondie
2. Méthodes
3. Chaîne Avancée
4. Classes
5. Classes Avancées

book
Méthode toString()

Comment imprimer plus facilement un objet ?

Pour afficher toutes les données d'un objet en utilisant la commande System.out.println(object); en Java, il existe une méthode appelée toString();.

toString()

La méthode toString en Java est une méthode intégrée qui appartient à la classe Object. Elle est utilisée pour retourner une représentation sous forme de chaîne de caractères d'un objet. Par défaut, lorsque nous appelons toString sur un objet, elle retourne une chaîne qui contient le nom de la classe suivi du hashcode de l'objet. Regardons l'exemple :

java

Main

copy
1234567891011121314151617181920
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } }

HashCode

Un hashcode, en termes simples, est un identifiant unique pour un objet qui est stocké en mémoire. Nous pouvons également voir le code de hachage d'un objet en appelant la méthode hashCode() sur celui-ci, par exemple :

java

Main

copy
123456789101112131415161718192021
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); int code = bob.hashCode(); System.out.println(code); } }

Dans ce cas, la question se pose : comment pouvons-nous obtenir quelque chose de plus spécifique au lieu du code de hachage d'un objet ? Pour de tels cas, nous pouvons redéfinir la méthode toString().

L'héritage et la redéfinition de méthode sont des sujets vastes que nous étudierons dans un cours séparé. Pour l'instant, nous utiliserons la redéfinition de méthode uniquement pour la méthode toString().

Comment utiliser toString()

Pour redéfinir une méthode, nous devons utiliser la syntaxe suivante :

java

Main

copy
1234
@Override public String toString() { // block of code }

Nous utilisons l'annotation @Override avant cette méthode. Avec cette annotation, le compilateur reconnaît que nous surchargeons cette méthode. Ensuite, nous spécifions la syntaxe public String toString(), indiquant quelle méthode exacte nous surchargeons.

Dans le corps de cette méthode, nous définirons comment notre objet doit être représenté sous forme de chaîne. Surchargeons la méthode pour la classe Person :

java

Person

copy
12345678910111213141516171819
class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

La commande System.lineSeparator() est utilisée pour créer une nouvelle ligne. Nous avons défini comment notre objet devrait apparaître en concaténant des chaînes avec leurs valeurs. Par conséquent, lorsque nous essayons d'imprimer un objet de la classe Person, nous verrons des informations détaillées sur chaque champ. Sortons un objet en utilisant la méthode main et voyons à quoi il ressemble :

java

Main

copy
12345678910111213141516171819202122232425262728
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

Nous avons obtenu des informations sur la classe à laquelle appartient l'objet bob et des détails sur tous ses champs. Ainsi, nous pouvons redéfinir et définir la méthode toString() pour afficher les informations souhaitées lors de l'impression d'un objet. Créons un autre objet de cette classe en utilisant le constructeur pour voir et renforcer comment la méthode toString() transforme l'objet :

java

Main

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); Person alice = new Person("Alice", 17, "female"); System.out.println(alice); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "." + System.lineSeparator(); } }

Nous pouvons voir que le nouvel objet alice est affiché dans la console en utilisant le même modèle.

Conclusion

En utilisant la méthode toString(), nous avons grandement simplifié le processus d'affichage des informations de l'objet à l'écran, nous permettant d'économiser de l'espace dans la méthode principale.

1. Pourquoi avons-nous besoin de la méthode toString() ?

2. Quelle annotation doit être utilisée au-dessus de la méthode toString() ?

Pourquoi avons-nous besoin de la méthode ``toString()`` ?

Pourquoi avons-nous besoin de la méthode toString() ?

Sélectionnez la réponse correcte

Quelle annotation doit être utilisée au-dessus de la méthode ``toString()`` ?

Quelle annotation doit être utilisée au-dessus de la méthode toString() ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 8
We're sorry to hear that something went wrong. What happened?
some-alt