A máquina virtual chama de forma transparente método toString no objeto “obj” ao concatená-lo com outra String (no caso, “”).
R
RafaelVN
mas o método toString num retorna o |nome da classe + @ + algums numeros| ?
no caso do exemplo ele retorna a string q recebe no argumento do construtor - new AClass (“Este é a …”);
nicoweda
exatamente sempre que você concatena algo com uma String a VM chamao o toString desse objeto…
Nesse caso que você mencionou o metodo toString deve ter sido sobreescrevido para retornar a String utilizada no construtor! Se você não sobre escreve-lo o metodo vai ser herdado da classe Object!
Só para lembrar… se você não concatenar com uma String teremos um problema de compilação… Porque um tipo AClass não pode ser atribuido a um String.
String s = new AClass("teste"); // ERRO DE COMPILAÇÃO
String s = new AClass("teste")+""; //Chama o metodo toString de AClass
[]'s
R
RafaelVN
mais porque en vez de ele escrever o retorno do toString ele escreve a string q ele recebe no construtor ?
nicoweda
Então… vou dar um exemplo abaixo de como poderia ser a Classa AClass
public class AClass{
private String s;
public AClass(String s){
this.s=s;
}
public String toString(){
return this.s;
}
}
Entendeu???
R
RafaelVN
hum isso parece override de método ou estou enganado?
nicoweda
Exatamente…
No caso agente fez um override ou sobrescrição do metodo!!
Se você não o fizer realmente teremos algo como AClass@6546164 !!!
Abraços!
R
RafaelVN
IEH!
Kra hoje eu to mlaz mrm, nem pensei nisso!!!
ieh muito simplizim kkkkkkkkkkk
no caso o toString e reescrito para retorna o argumento do contrutor!!
pow eh q eu num to achando a definição da classe , c eu acha eu posto para poder confirmar , mais pode ser isso realmente.