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

Conteúdo do Curso

Java Avançado

Java Avançado

1. Estrutura Profunda do Java
2. Métodos
3. String Avançado
4. Classes
5. Classes Avançadas

book
Método ToString()

Como imprimir um objeto de forma mais fácil?

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 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 podemos 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 hash code de um objeto? Para esses casos, é possível 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 utilizar 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 }

Utiliza-se a anotação @Override antes deste método. Com essa anotação, o compilador reconhece que este método está sendo sobrescrito. Em seguida, especifica-se a sintaxe public String toString(), indicando exatamente qual método está sendo sobrescrito.

No corpo deste método, define-se como o 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 tentar 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 visualizar 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 utilizada 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 utilizada 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

course content

Conteúdo do Curso

Java Avançado

Java Avançado

1. Estrutura Profunda do Java
2. Métodos
3. String Avançado
4. Classes
5. Classes Avançadas

book
Método ToString()

Como imprimir um objeto de forma mais fácil?

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 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 podemos 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 hash code de um objeto? Para esses casos, é possível 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 utilizar 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 }

Utiliza-se a anotação @Override antes deste método. Com essa anotação, o compilador reconhece que este método está sendo sobrescrito. Em seguida, especifica-se a sintaxe public String toString(), indicando exatamente qual método está sendo sobrescrito.

No corpo deste método, define-se como o 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 tentar 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 visualizar 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 utilizada 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 utilizada 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