DUVIDASSS metodo toString() onde eh chamado?

1 resposta
furacao123

Gostaria de descobrir com esse metodo toString() eh chamado…segue o codigo fonte abaixo

public class Registro

{

private String nome;

private String sobrenome;

private String NumConta;
public Registro(String nome, String sobrenome, String NumConta)
{
	this.nome = nome;
	this.sobrenome = sobrenome;
	this.NumConta = NumConta;
}

public String getnome()
{
	return nome + " "+sobrenome;
}

public String getNumConta()
{
	return NumConta;
}

public boolean igual (Object o)
{
	if(o instanceof Registro)
	{
		Registro r = (Registro) o;
		return getnome().equals(r.getnome()) && NumConta.equals(r.getNumConta());
	}
	return false;
}

public String toString()
{
	[b]String s = "Contasdgfsdgfdg: "+NumConta + "\n" +getnome();[/b]
	return s;
}

}


public class VerRegistro

{

public static void main(String[] args)

{

if(args.length != 3)

{

System.err.println("Utilizacao: Java VerRegistro   ");

System.exit(1);

}
Registro um = new Registro("Ze", "Jose", "12345");
	Registro dois = new Registro("Maria", "Oliveira", "94586");
	Registro tres = new Registro("Ana", "Silva", "48735");
	Registro[] recs = {um,dois,tres};
	Registro rec = new Registro(args[0],args[1],args[2]);
	
	boolean encontrado = false;
	for(int i =0; i <recs.length; i++)
	{
		if(rec.igual(recs[i]))
		{
			encontrado = true;
			System.out.println("Encontrado!");
			[b]System.out.println(recs[i]);[/b]
		}
	}
	
	if(!encontrado)
	{
		System.out.println("Nenhum registro encontrado");
	}
}

}

Alguem sabe se esse metodo toString() eh reservado do java??

pois ele eh executado mas não consegui identificar onde

1 Resposta

5leipn1r

Esse metodo toString() é um metodo da superclasse object que toda classe herda automaticamente. Quando vc criou o toString na sua classe registro, na verdade vc estava sobreescrevedo o metodo da superclasse. Ele é chamado automaticamente quando vc tenta por exemplo no System.out.println() imprimir um objeto que não é uma string, ele é automaticamente executado retornando a string no lugar do objeto que não seria possivel por causa da incompatibilidade de tipos.
Deu pra entender?

Criado 25 de setembro de 2008
Ultima resposta 25 de set. de 2008
Respostas 1
Participantes 2