Por que do resultado?!?  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Guilherme Gomes
Virtual Machine Man
[Avatar]

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.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
diego2005
GUJ Master
[Avatar]

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
acopiara
JavaChild
[Avatar]

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
Guilherme Gomes
Virtual Machine Man
[Avatar]

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.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
acopiara
JavaChild
[Avatar]

Membro desde: 14/11/2006 17:15:33
Mensagens: 149
Offline


--
Alysson Bandeira
diego2005
GUJ Master
[Avatar]

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
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team