| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2007 13:30:27
|
Guilherme Gomes
Virtual Machine Man
![[Avatar]](/images/avatar/1d32607ab01409c4b6916c5cae13b269.jpg)
Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline
|
Andei baixando uns SWs que postaram aqui no GUJ sobre exames e tal. No seguinte exercicio, não sei porque a saida dele é ... não vou falar, quero que alguem que saiba consiga deduzir a saida e explicar por que ^^
|
-----------
Atenciosamente,
Guilherme V. F. Gomes. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2007 13:47:14
|
diego2005
GUJ Master
![[Avatar]](/images/avatar/7fd4db88d31ab524e0afe153c4f9465a.jpeg)
Membro desde: 17/08/2005 10:11:05
Mensagens: 1095
Offline
|
Bem, quando você faz:
O construtor de Extension é chamado, em seguida o construtor de Base é chamado, pois implicitamente tem uma chamada a super() no construtor de Extension.
Quando o construtor de Base é finalizado, i está valendo 2. Ai no construtor de Extension ele chama add(2). Então, quando o construtor de Extension é finalizado i está valendo 22...
Não sei se fui claro.
T+
|
SCJP 1.4
Meu Currículo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2007 13:52:08
|
acopiara
JavaChild
![[Avatar]](/images/avatar/720788047c0f22a0d3b25150007b2618.jpg)
Membro desde: 14/11/2006 17:15:33
Mensagens: 149
Offline
|
É isso ai, mas a primeira vez que é chamado o método add é no construtor base e essa chamada vai ser ao método subrescrito na classe Extension.
|
--
Alysson Bandeira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2007 13:57:26
|
Guilherme Gomes
Virtual Machine Man
![[Avatar]](/images/avatar/1d32607ab01409c4b6916c5cae13b269.jpg)
Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline
|
diego2005 wrote:
Não sei se fui claro.
Sinceramente, .... não ^^
|
-----------
Atenciosamente,
Guilherme V. F. Gomes. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2007 14:09:06
|
acopiara
JavaChild
![[Avatar]](/images/avatar/720788047c0f22a0d3b25150007b2618.jpg)
Membro desde: 14/11/2006 17:15:33
Mensagens: 149
Offline
|
|
--
Alysson Bandeira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2007 14:13:58
|
diego2005
GUJ Master
![[Avatar]](/images/avatar/7fd4db88d31ab524e0afe153c4f9465a.jpeg)
Membro desde: 17/08/2005 10:11:05
Mensagens: 1095
Offline
|
Vamos lá então, vou fazer + uma tentativa, rsrsrsrs..
A seguinte linha:
Faz o seguinte:
1º - executa o construtor de Extension:
2º - no construtor de Extension a uma chamada implícita a super(), que ira executar o construtor de Base:
3º - a chamada a add(1) irá executar o método:
4º - (nesse ponto i é igual a 2) o construtor de Base é finalizado, então a execução volta pro construtor de Extension, que tem uma chamada a add(2), que executar o método:
5º - (nesse ponto i é igual a 6) o construtor de Extension é finalizado, então a execução vai para o método bogo, que tem uma chamada a add( , que executa o método:
6º - (nesse ponto i é igual a 22) agora temos uma chamada a print, finalizando assim a execução...
Acho que agora melhorou um pouco, né???
T+
|
SCJP 1.4
Meu Currículo |
|
|
 |
|
|