Mateus,

Ainda não vimos Herança, um mecanismo importante das linguagens orientadas a
objetos, de modo que é normal que você não possa entender ainda a explicação
do Peter, que cita a classe Object, e sobrescrever métodos, assuntos que
ainda serão vistos juntamente com Herança.

O que ele quis dizer é que você pode ter dois métodos com exatamente com a
mesma assinatura, desde que estejam em classes diferentes. Já existe um
método String toString() na classe Object, e a sua classe Pessoa, ou Aluno,
tem acesso automático a esse método pelo mecanismo da herança, caso ele não
esteja definido nessas classes (nesse caso o método da classe Object
funciona como "default"). O que não impede que você crie nessas classes
métodos específicos com essa mesma assinatura, que aí então passarão a serem
usados no lugar do método "default" da classe Object.
abs,
Jonathan

2010/4/10 Mateus Gregorio <[email protected]>

> > "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 <http://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]<comp2-geral%[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]<comp2-geral%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/comp2-geral?hl=en.
>
> ------------------------------
> Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 
> 10<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/>-
> Celebridades<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/>-
> Música<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/>-
> Esportes<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/>
>
> --
> 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]<comp2-geral%[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.

Responder a