Se você quiser representar qualquer objeto como uma string, Método toString() passa a existir.
O método toString() retorna a representação String do objeto.
Se você imprimir qualquer objeto, o compilador Java invoca internamente o método toString() no objeto. Portanto, substituir o método toString() retorna a saída desejada, pode ser o estado de um objeto, etc., dependendo da sua implementação.
um objeto em java
Vantagem do método Java toString()
Ao substituir o método toString() da classe Object, podemos retornar valores do objeto, portanto não precisamos escrever muito código.
Entendendo o problema sem o método toString()
Vamos ver o código simples que imprime a referência.
Aluno.java
class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } }
Saída:
algoritmo knn
Student@1fee6fc Student@1eed786
Como você pode ver no exemplo acima, imprimir s1 e s2 imprime os valores hashcode dos objetos, mas quero imprimir os valores desses objetos. Como o compilador Java chama internamente o método toString(), substituir esse método retornará os valores especificados. Vamos entender isso com o exemplo abaixo:
Exemplo de método Java toString()
Vamos ver um exemplo do método toString().
Aluno.java
um milhão em números
class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public String toString(){//overriding the toString() method return rollno+' '+name+' '+city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } }
Saída:
101 Raj lucknow 102 Vijay ghaziabad
No programa acima, o compilador Java chama internamente para sequenciar() método, substituir este método retornará os valores especificados de s1 e s2 objetos da classe Student.