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 Avancé
course content

Contenu du cours

Java Avancé

Java Avancé

1. Deep Java Structure
2. Méthodes
3. String Avancé
4. Classes
5. Classes Avancées

book
Méthode ToString()

Comment faciliter l'affichage d'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 l'on appelle toString sur un objet, elle retourne une chaîne contenant le nom de la classe suivi du hashcode de l'objet. Examinons l'exemple :

Main.java

Main.java

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 stocké en mémoire. Il est également possible d'afficher le code de hachage d'un objet en appelant la méthode hashCode() sur celui-ci, par exemple :

Main.java

Main.java

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, une question se pose : comment obtenir quelque chose de plus spécifique que le code de hachage d'un objet ? Pour de tels cas, il est possible de redéfinir la méthode toString().

L'héritage et la redéfinition de méthode sont des sujets approfondis qui seront étudiés dans un cours séparé. Pour l'instant, la redéfinition de méthode sera utilisée uniquement pour la méthode toString().

Utilisation de toString()

Pour redéfinir une méthode, il convient d'utiliser la syntaxe suivante :

Main.java

Main.java

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

Nous utilisons l’annotation @Override avant cette méthode. Grâce à cette annotation, le compilateur reconnaît que nous redéfinissons cette méthode. Ensuite, nous spécifions la syntaxe public String toString(), indiquant précisément quelle méthode nous redéfinissons.

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

Person.java

Person.java

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 l'apparence de notre objet en concaténant des chaînes de caractères avec leurs valeurs. Ainsi, lorsque nous essayons d'afficher un objet de la classe Person, nous verrons des informations détaillées sur chaque champ. Affichons un objet à l'aide de la méthode main pour observer le résultat :

Main.java

Main.java

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 ainsi que des détails sur tous ses champs. Ainsi, nous pouvons redéfinir et spécifier la méthode toString() afin d'afficher les informations souhaitées lors de l'affichage d'un objet. Créons un autre objet de cette classe à l'aide du constructeur pour observer et confirmer comment la méthode toString() transforme l'objet :

Main.java

Main.java

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 d'un objet à l'écran, ce qui nous permet 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() ?

question mark

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

Select the correct answer

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 8

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Java Avancé

Java Avancé

1. Deep Java Structure
2. Méthodes
3. String Avancé
4. Classes
5. Classes Avancées

book
Méthode ToString()

Comment faciliter l'affichage d'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 l'on appelle toString sur un objet, elle retourne une chaîne contenant le nom de la classe suivi du hashcode de l'objet. Examinons l'exemple :

Main.java

Main.java

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 stocké en mémoire. Il est également possible d'afficher le code de hachage d'un objet en appelant la méthode hashCode() sur celui-ci, par exemple :

Main.java

Main.java

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, une question se pose : comment obtenir quelque chose de plus spécifique que le code de hachage d'un objet ? Pour de tels cas, il est possible de redéfinir la méthode toString().

L'héritage et la redéfinition de méthode sont des sujets approfondis qui seront étudiés dans un cours séparé. Pour l'instant, la redéfinition de méthode sera utilisée uniquement pour la méthode toString().

Utilisation de toString()

Pour redéfinir une méthode, il convient d'utiliser la syntaxe suivante :

Main.java

Main.java

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

Nous utilisons l’annotation @Override avant cette méthode. Grâce à cette annotation, le compilateur reconnaît que nous redéfinissons cette méthode. Ensuite, nous spécifions la syntaxe public String toString(), indiquant précisément quelle méthode nous redéfinissons.

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

Person.java

Person.java

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 l'apparence de notre objet en concaténant des chaînes de caractères avec leurs valeurs. Ainsi, lorsque nous essayons d'afficher un objet de la classe Person, nous verrons des informations détaillées sur chaque champ. Affichons un objet à l'aide de la méthode main pour observer le résultat :

Main.java

Main.java

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 ainsi que des détails sur tous ses champs. Ainsi, nous pouvons redéfinir et spécifier la méthode toString() afin d'afficher les informations souhaitées lors de l'affichage d'un objet. Créons un autre objet de cette classe à l'aide du constructeur pour observer et confirmer comment la méthode toString() transforme l'objet :

Main.java

Main.java

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 d'un objet à l'écran, ce qui nous permet 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() ?

question mark

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

Select the correct answer

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 8
some-alt