Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Método ToString() | Classes
Java Avançado

bookMétodo ToString()

Como Exibir Facilmente um Objeto

Para exibir todos os dados de um objeto utilizando o comando System.out.println(object); em Java, existe um método chamado toString();.

toString()

O método toString em Java é um método incorporado que pertence à classe Object. Ele é utilizado para retornar uma representação em forma de string de um objeto. Por padrão, quando chamamos toString em um objeto, ele retorna uma string que contém o nome da classe seguido pelo hashcode do objeto. Vamos analisar o exemplo:

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

Um hashcode, em termos simples, é um identificador único para um objeto que está armazenado na memória. Também é possível visualizar o hash code de um objeto chamando o método hashCode() sobre ele, por exemplo:

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); } }

Nesse caso, surge a seguinte questão: como obter algo mais específico em vez do código hash de um objeto? Para esses casos, podemos sobrescrever o método toString().

Herança e sobrescrita de métodos são tópicos extensos que serão estudados em um curso separado. Por enquanto, utilizaremos a sobrescrita de métodos apenas para o método toString().

Como usar o toString()

Para sobrescrever um método, é necessário utilizar a seguinte sintaxe:

Main.java

Main.java

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

Utilizamos a anotação @Override antes deste método. Com esta anotação, o compilador reconhece que estamos sobrescrevendo este método. Em seguida, especificamos a sintaxe public String toString(), indicando exatamente qual método estamos sobrescrevendo.

No corpo deste método, definiremos como nosso objeto deve ser representado como uma string. Vamos sobrescrever o método para a 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 + "."; } }

O comando System.lineSeparator() é utilizado para criar uma nova linha. Definimos como nosso objeto deve ser exibido ao concatenar strings com seus valores. Portanto, ao tentarmos imprimir um objeto da classe Person, veremos informações detalhadas sobre cada campo. Vamos exibir um objeto usando o método main e observar como ele aparece:

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 + "."; } }

Obtivemos informações sobre a classe à qual o objeto bob pertence e detalhes sobre todos os seus campos. Assim, é possível sobrescrever e definir o método toString() para exibir as informações desejadas ao imprimir um objeto. Vamos criar outro objeto dessa classe utilizando o construtor para observar e reforçar como o método toString() transforma o objeto:

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(); } }

Podemos ver que o novo objeto alice é exibido no console usando o mesmo modelo.

Conclusão

Ao utilizar o método toString(), simplificamos bastante o processo de exibição das informações do objeto na tela, permitindo economizar espaço no método principal.

1. Por que precisamos do método toString()?

2. Qual anotação deve ser usada acima do método toString()?

question mark

Por que precisamos do método toString()?

Select the correct answer

question mark

Qual anotação deve ser usada acima do método toString()?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 8

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you show an example of how to override the toString() method in a class?

What happens if I don't override the toString() method?

Can you explain more about method overriding and inheritance?

Awesome!

Completion rate improved to 2.63

bookMétodo ToString()

Deslize para mostrar o menu

Como Exibir Facilmente um Objeto

Para exibir todos os dados de um objeto utilizando o comando System.out.println(object); em Java, existe um método chamado toString();.

toString()

O método toString em Java é um método incorporado que pertence à classe Object. Ele é utilizado para retornar uma representação em forma de string de um objeto. Por padrão, quando chamamos toString em um objeto, ele retorna uma string que contém o nome da classe seguido pelo hashcode do objeto. Vamos analisar o exemplo:

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

Um hashcode, em termos simples, é um identificador único para um objeto que está armazenado na memória. Também é possível visualizar o hash code de um objeto chamando o método hashCode() sobre ele, por exemplo:

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); } }

Nesse caso, surge a seguinte questão: como obter algo mais específico em vez do código hash de um objeto? Para esses casos, podemos sobrescrever o método toString().

Herança e sobrescrita de métodos são tópicos extensos que serão estudados em um curso separado. Por enquanto, utilizaremos a sobrescrita de métodos apenas para o método toString().

Como usar o toString()

Para sobrescrever um método, é necessário utilizar a seguinte sintaxe:

Main.java

Main.java

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

Utilizamos a anotação @Override antes deste método. Com esta anotação, o compilador reconhece que estamos sobrescrevendo este método. Em seguida, especificamos a sintaxe public String toString(), indicando exatamente qual método estamos sobrescrevendo.

No corpo deste método, definiremos como nosso objeto deve ser representado como uma string. Vamos sobrescrever o método para a 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 + "."; } }

O comando System.lineSeparator() é utilizado para criar uma nova linha. Definimos como nosso objeto deve ser exibido ao concatenar strings com seus valores. Portanto, ao tentarmos imprimir um objeto da classe Person, veremos informações detalhadas sobre cada campo. Vamos exibir um objeto usando o método main e observar como ele aparece:

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 + "."; } }

Obtivemos informações sobre a classe à qual o objeto bob pertence e detalhes sobre todos os seus campos. Assim, é possível sobrescrever e definir o método toString() para exibir as informações desejadas ao imprimir um objeto. Vamos criar outro objeto dessa classe utilizando o construtor para observar e reforçar como o método toString() transforma o objeto:

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(); } }

Podemos ver que o novo objeto alice é exibido no console usando o mesmo modelo.

Conclusão

Ao utilizar o método toString(), simplificamos bastante o processo de exibição das informações do objeto na tela, permitindo economizar espaço no método principal.

1. Por que precisamos do método toString()?

2. Qual anotação deve ser usada acima do método toString()?

question mark

Por que precisamos do método toString()?

Select the correct answer

question mark

Qual anotação deve ser usada acima do método toString()?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 8
some-alt