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.
