> "A existência deste método é garantida por estar em Object. Tudo o que vc
> precisa fazer para modificar o retorno padrão é
> fazer um override (sobrescrever o método), escrevendo outro com exatamente a
> mesma assinatura e um tipo de retorno igual
> (ou uma subclasse deste tipo)."
Quando li isso pensei numa coisa: Em que casos o override de métodos é
permitido?
Por exemplo, digamos que eu crie estes dois métodos abaixo:
String getNome(){
return this.nome;
}
String getNome(){
return "ABC" + this.nome;
}
Seu eu fizer isso o Eclipse irá me alertar de que o método getNome() foi
duplicado. Por que não acontece a mesma coisa quando declaramos o método
toString() em uma classe? Só é permitido fazer override de métodos
pertencentes à superclasse da classe que eu estou criando? (pois, se eu não me
engano, o método toString default pertence a classe Object, que é a superclass
padrão de toda classe criada no Java)
Abraços,
Mateus Greg.
________________________________
De: Peter P. Lupo <[email protected]>
Para: [email protected]
Enviadas: Quinta-feira, 8 de Abril de 2010 20:21:59
Assunto: Re: [comp2-geral] Re: Lista 1 - Exercícios 1/2
Quando vc chama System.out.println(ref) ou concatena uma string com um objeto
"abc" + ref onde ref é uma referência pra um objeto e em outras situações onde
é exigida uma representação do objeto, é chamado o método toString()
automaticamente.
A existência deste método é garantida por estar em Object. Tudo o que vc
precisa fazer para modificar o retorno padrão é fazer um override (sobrescrever
o método), escrevendo outro com exatamente a mesma assinatura e um tipo de
retorno igual (ou uma subclasse deste tipo).
Só a título de curiosidade: O valor de retorno padrão de object é o "nome da
classe na posição de memória X": cl...@23fa3c
A posição de memória está em hexadecimal e o valor inteiro correspondente pode
ser obtido através do método hashcode() também presente em Object.
Não sei se o prof. já explicou a finalidade deste método para vocês mas se
ainda não o fez, estas são apenas cenas dos próximos capítulos. :-P
Abraço
Peter P. Lupo
http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster
Sun Certified Java Associate - Java Brown Belt
+55 (021) 81742487
2010/4/8 erick najjar <[email protected]>
Kate,
>
>O construtor de uma classe tem sempre q ter o nome da classe, então, todos são
>obrigados a ter o mesmo nome.
>
>Não podem haver dois construtoresa(nem nenhum método, construtor ou não) com a
>mesma assinatura. A assinatura de um método são os tipos, a ordem e a
>quantidade de seus parametros.
>
>um metodo que receba um int e um double, e um metodo, com o mesmo nome, que
>receba um int e uma string tem assinaturas diferentes.
>
>void metodo(int a, double b){
>
>}//uma assinatura
>
>void metodo(int a, string b){
>
>}//outra assinatura
>
>Eu ainda posso ter um terceiro metodo, que tambem recebe um int e um double
>mas em ordens trocadas, e teria uma terceira assinatura.
>
>void metodo(double a, int b){
>
>}//terceira assinatura
>
>Se eu tiver um quarto metodo, recebendo 3 parametros, tudo bem q os dois
>primeiros sejam iguais, pois le tem um numero diferente de parametros. (só
>tomar cuidado com parametros com valor default)
>
>void metodo(int a, double b, int c){
>
>}//outra assinatura
>
>
>Sobre a pergunta do exercício, acho q o professor quer q imprima a pessoa
>usando o metodo toString dela.
>
>--
>You received this message because you are subscribed to the Google Groups
>"Comp 2 - Geral" group.
>To post to this group, send email to [email protected].
>To unsubscribe from this group, send email to
>[email protected].
>For more options, visit this group at
>http://groups.google.com/group/comp2-geral?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "Comp
2 - Geral" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/comp2-geral?hl=en.
--
You received this message because you are subscribed to the Google Groups "Comp
2 - Geral" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/comp2-geral?hl=en.