Metodo toString()

ae galera qual o objetivo mesmo de usar o metodo toString? nao entendi o uso deste metodo, encontrei ele bastante em polimorfismo, herança… e class abstract quem puder mim ajudar pq usa-lo e qdo usa-lo agradeço hehe!

ele é usado para retornar a String que representa um objeto ou simplesmente retornar um texto.

ex:
Integer x = 10;
System.out.println(x.toString());
(claro q neste o sysout chama esse método automaticamente) … portanto System.out.println(x); … tb funciona.

no caso de classe é retornado m id para a mesma… algo tipo @3534fiyg

Quando você quer fornecer informações uteis sobre suas classes você pode subscrever o método toString(). Por exemplo:

[code]public class MyClass
{
String nome;

public MyClass(String nome)
{
     this.nome = nome;
}

public String toString()
{
     return "Meu nome e' " + nome;
}

public static void main(String[] args)
{
     MyClass obj1 = new MyClass("Diego");

     System.out.println(obj1.toString()); // imprime: Meu nome e' Diego
     System.out.println(obj1); // chama toString automaticamente
}

}[/code]

No caso da classe String, ela retorna a própria String:

String str = "Java"; System.out.println(str); // chama toString e imprime: Java

Entendeu??

O método toString é um método da classe Object, toda classe que você criar herdará este método. Para fazer com que ele gere informações específicas para objetos da classe que vocë criou, você deve sobrescrever este método. Ele é bastante útil para debugar código ou quando você quer exibir informações sobre o estado interno do objeto.

Abraço!

opa, galera valeu ai, entao por exemplo se eu trabalhar com herança e na classe super eu tenho o metodo toString e se na subaclasse eu quiser imprimir os dados da classe da super + o da super eh so eu sobescrever o metodo.
Concluido eh melhor usar o toString do que o println e printf?

Camilo,

Na verdade o toString não imprime nada, ele só retorna uma String. Logo, não tem como fazer essa comparação que vc falou

Porque o normal é vc fazer algo assim:

System.out.print(seuObjeto.toString());

Acho que o que vc quis dizer com

foi imprimir os dados da classe pai concatenados com os dados da classe derivada, certo?

Nesse caso vc poderia criar um método toString mais ou menos assim:

public String toString(){
   return super.toString() + "Atributo A: "+ atributo_A + "Atributo_B: "+ atributo_B;
}

Abraço!