| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2010 12:46:05
|
ralphsilver
Java Ninja
![[Avatar]](/images/avatar/2b720b5359202de2d62768369718f694.jpg)
Membro desde: 09/03/2008 19:53:14
Mensagens: 269
Offline
|
Nossa! Depois da resposta do nosso amigo Mantu porque ainda não mudaram o título para resolvido?
|
No mundo há apenas 10 tipos de pessoas: os que sabem binário e os que não sabem |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2010 12:51:41
|
ManoJava
JavaEvangelist
![[Avatar]](/images/avatar/9e0c2d8064cdede08df533dd8f192b1a.jpg)
Membro desde: 23/04/2009 09:18:23
Mensagens: 480
Localização: Mococa-SP
Offline
|
Pra quem chegou (vivo) até aqui, minhas sinceras desculpas pelo post-pergaminho. Espero que tenha ajudado (E que eu não tenha dito nenhuma bobagem no percurso).
Divirtam-se!
Sinceramente seu post motiva ler até o final, pois não seria muito inteligente não terminar de ler a explicação. Parbéns
Att.
|
"Há Três coisas que nunca voltam atrás: A flecha lançada, a palavra pronunciada e a oportunidade perdida." - Provérbio Chinês
In Guj We Trust!
Bacharel em Ciência da Computação
MBA - Gestão de Projetos |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2010 13:03:58
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
ralphsilver wrote:Nossa! Depois da resposta do nosso amigo Mantu porque ainda não mudaram o título para resolvido?
Pq em 2007 não havia ainda essa prática no fórum.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2010 08:07:44
|
ECO2004
JavaEvangelist
![[Avatar]](/images/avatar/400362daca8ad3cbfaf07300bc4bd898.jpg)
Membro desde: 06/11/2006 01:11:23
Mensagens: 307
Online
|
"Para resolução de métodos, olha-se o tipo da referência, e não do valor que ela contém..."
O que você quis dizer com isso?
Animal a = new Cachorro();
A variável "a" está referenciando "Cachorro", correto?
Outra coisa, tem como você ser mais claro a respeito de tempo de execução (runtime) a a parte "estática" comentada?
Vlw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2010 08:56:31
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
ECO2004 wrote:"Para resolução de métodos, olha-se o tipo da referência, e não do valor que ela contém..."
O que você quis dizer com isso?
Animal a = new Cachorro();
A variável "a" está referenciando "Cachorro", correto?
Outra coisa, tem como você ser mais claro a respeito de tempo de execução (runtime) a a parte "estática" comentada?
Vlw
Sim está referenciando um cachorro. Mas o tipo da variável de referência a é Animal, e não cachorro. Na hora de escolher que método chamar, é sobre esse tipo que ele vai olhar, até porque, ele não tem como garantir que lá dentro haverá sempre um cachorro. Veja bem, no caso onde a chamada e a inicialização da variável estão próximos, é fácil vermos que Animal contém um cachorro. Mas lembre-se que você pode ter uma criação assim:
E nesse caso seria muito trabalhoso (para não dizer impossível) determinar o tipo do animal.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2010 09:48:11
|
ECO2004
JavaEvangelist
![[Avatar]](/images/avatar/400362daca8ad3cbfaf07300bc4bd898.jpg)
Membro desde: 06/11/2006 01:11:23
Mensagens: 307
Online
|
Eu entendi...
É por isso que usamos obj instanceof Classe, para sabermos se tal objeto pertence à classe.
Me corrija se eu estiver errado, mas quando faço "Animal a = new Cachorro();", isso somente ocorre em tempo de execução, até porque o new aloca memória e somente é feito isso em tempo de execução. Na compilação, não há memória alocada e tudo que a linguagem sabe é que "a" é do tipo Animal.
Esse também é um dos motivos pela qual o downcasting necessita de:
Cachorro c = (Cachorro)a;
pois "c" não sabe quem está "embaixo" de "a."
No meu exemplo anterior, criticado por você por ser errado, a função chamada é a f(C1 c) por quê?????????
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2010 09:53:59
|
ECO2004
JavaEvangelist
![[Avatar]](/images/avatar/400362daca8ad3cbfaf07300bc4bd898.jpg)
Membro desde: 06/11/2006 01:11:23
Mensagens: 307
Online
|
É por que f(c1) não sabe que ocorreu "C1 c1 = new C2();" ?
Para que chamasse f(C2 c) ao invés de f(C1 c), teria que fazer na "main" f((C2)c1), pois c1, na instrução "f(c1)" não tem como ler a instrução anterior e ver que houve referência à C2?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2010 12:23:52
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Isso mesmo.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2010 13:14:31
|
ECO2004
JavaEvangelist
![[Avatar]](/images/avatar/400362daca8ad3cbfaf07300bc4bd898.jpg)
Membro desde: 06/11/2006 01:11:23
Mensagens: 307
Online
|
Obrigado!
|
|
|
 |
|
|