| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 09:17:24
|
fbanin
Debugger
![[Avatar]](/images/avatar/2e907f44e0a9616314cf3d964d4e3c93.jpg)
Membro desde: 31/03/2005 07:39:04
Mensagens: 62
Offline
|
Olhe os códigos:
Classe: Pai.java
Classe: Filho.java
Classe: TestePaiFilho.java
Sem implementar... qual será a saída ?!?!?!?!?!
|
Fabiano Banin
e-mail: fbanin@gmail.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 09:26:44
|
Rafael Nunes
Moderador
![[Avatar]](/images/avatar/d072677d210ac4c03ba046120f0802ec.png)
Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline
|
Eu creio que é por duas razões.
1 - Porque nome(PAI) é estática, e no método printNome, ele buscar a variável de instância.
2 - Porque não existe overreader de variáveis, logo, ele assumirá a variável do tipo do objeto.
Mas são só achismos por enquanto...
|
------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."
http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 09:32:41
|
fbanin
Debugger
![[Avatar]](/images/avatar/2e907f44e0a9616314cf3d964d4e3c93.jpg)
Membro desde: 31/03/2005 07:39:04
Mensagens: 62
Offline
|
é essa saída mesmo....
Como eu não criei uma variavel para a classe Filho, ele usa a da pai... agora o que fiquei na dúvida foi, no TestePaiFilho eu criei duas instancias... logo seriam dois objetos diferentes, uma para PAI e outra para FILHO, pq ele assume o mesmo nome para as duas instâncias ?! Ele não deveriai ter como saída p.printNome() -> PAI -> PAI ??
|
Fabiano Banin
e-mail: fbanin@gmail.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 09:37:19
|
skill_ufmt
JavaEvangelist
![[Avatar]](/images/avatar/8248a99e81e752cb9b41da3fc43fbe7f.png)
Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline
|
Ele vai imprimir FILHO, FILHO
static garante uma instancia, mas não a imutabilidade da variável.
Antes que perguntem porque não imprime PAI e depois Filho, primeiro ele agirá sobre filho, mudará o valor da variável, e então irá imprimir o valor da classe pai. (acho que é isso).
Isso se não me engano é uma das dicussões en torno do sigleton, visto que alguns modelos como do GOF, se não me engano, ele assumem static para garantir uma unica instância, mas acontece que essa instancia poderá ser alterada em seu valor.
Alguns dizem que o verdadeiro singleton tem que ter o "final" e o "static", mas creio que os dois casos são permitidos, vai depender das suas necessidades.
|
Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação
CUIABÁ JAVA USERS
www.cajumt.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 09:53:05
|
cu_ringa
Virtual Machine Man
![[Avatar]](/images/avatar/d72fbbccd9fe64c3a14f85d225a046f4.png)
Membro desde: 27/08/2003 00:19:11
Mensagens: 602
Localização: Natal-RN
Offline
|
pelo q sei a variavel nome da classe Pai ja existe antes de vc instanciar um objeto da classe Pai, ja q a variavel nome e static, ai qnd vc cria um objeto da classe Filho ele vai colocar na variavel nome da classe Pai o valor FILHO, entao qnd vc for chamar os metodos eles vao mostrar a mesma coisa. Agora se vc fizesse assim:
ai creio eu q vai mostrar resultados diferentes.
|
"O que levamos desta vida, é a vida que a gente leva". |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 10:40:07
|
skill_ufmt
JavaEvangelist
![[Avatar]](/images/avatar/8248a99e81e752cb9b41da3fc43fbe7f.png)
Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline
|
cu_ringa wrote:
ai creio eu q vai mostrar resultados diferentes.
Não irá mostrar resultados diferentes caro cu_ringa, como disse a variável nome já existirá, porém ela só sera impressa pela classe Pai, após ser impressa pela classe filho, mas na classe filho ocorre a alteração do valor para "FILHO", quando do retorno a classe pai a variável nome já se encontra com este valor e então é impressa, uma espécie de recursão.
This message was edited 1 time. Last update was at 19/04/2005 10:40:26
|
Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação
CUIABÁ JAVA USERS
www.cajumt.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 10:45:06
|
cu_ringa
Virtual Machine Man
![[Avatar]](/images/avatar/d72fbbccd9fe64c3a14f85d225a046f4.png)
Membro desde: 27/08/2003 00:19:11
Mensagens: 602
Localização: Natal-RN
Offline
|
skill_ufmt escreveu:
...como disse a variável nome já existirá, porém ela só sera impressa pela classe Pai, após ser impressa pela classe filho...
skill_ufmt, discordo de vc. Do jeito que a classe TestePaiFilho foi escrita a classe a variavel nome será impressa prmeiro pela classe Pai e depois pela classe Filho. Agora concordo com vc na hora em q a classe Filho sobrescreve a variavel nome, e assim qnd for imprimida a variavel nome o resultado e FILHO nos 2 casos.
skill_ufmt, acho q vc num viu a ordem em q coloquei as chamadas.
This message was edited 1 time. Last update was at 19/04/2005 10:55:03
|
"O que levamos desta vida, é a vida que a gente leva". |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 11:01:52
|
skill_ufmt
JavaEvangelist
![[Avatar]](/images/avatar/8248a99e81e752cb9b41da3fc43fbe7f.png)
Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline
|
cu_ringa wrote:
skill_ufmt, acho q vc num viu a ordem em q coloquei as chamadas.
Sim cu_ringa, do jeito dele é repetido ao valor, do seu modo realmente são diferentes, o esquema está na instanciação dos objetos
Abraços
|
Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação
CUIABÁ JAVA USERS
www.cajumt.com.br |
|
|
 |
|
|