| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 00:57:15
|
jdeveloper
JavaTeenager
Membro desde: 04/08/2005 08:55:58
Mensagens: 160
Offline
|
qual a diferença entre eu declarar uma variável como final ou static final?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 07:44:38
|
ateubh
JavaEvangelist
![[Avatar]](/images/avatar/bcc2bdb799f873f02080ae277f291da1.jpg)
Membro desde: 27/06/2005 09:37:50
Mensagens: 319
Offline
|
Uma variável do tipo final, depois que tem um valor atribuído a ela, o mesmo não pode ser modificado
ja uma variável do tipo static, só é instanciada uma vez na memória... ou seja, se você precisar de instanciar vários objetos e eles precisarem possuir uma variável em comum.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 13:39:35
|
jdeveloper
JavaTeenager
Membro desde: 04/08/2005 08:55:58
Mensagens: 160
Offline
|
ok
mas e se eu fizer algo do tipo:
final int i;
static final int i;
qual a diferença?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 13:48:16
|
#@®®¡$
Moderador
![[Avatar]](/images/avatar/2288f691b58edecadcc9a8691762b4fd.jpg)
Membro desde: 13/02/2004 09:42:28
Mensagens: 807
Localização: São Paulo
Offline
|
No primeiro caso, i terá um valor constante para a instância em que for declarado. No segundo, i terá um valor constante até o termino da execução da VM.
Variáveis estáticas são as chamadas "variáveis de classe", pois elas não são ligadas a nenhuma instância.
|
Wilerson "#@®®¡$" de Oliveira
http://mundoestranho.net/blog/
Douglas Adams wrote:I love deadlines. I like the whooshing sound they make as they fly by.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 13:52:26
|
jdeveloper
JavaTeenager
Membro desde: 04/08/2005 08:55:58
Mensagens: 160
Offline
|
Costuma-se declarar constantes como static final.
Mas se eu declarar como final daria na mesma, correto?
Ambos os valores não poderão ser alterados...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 14:05:55
|
#@®®¡$
Moderador
![[Avatar]](/images/avatar/2288f691b58edecadcc9a8691762b4fd.jpg)
Membro desde: 13/02/2004 09:42:28
Mensagens: 807
Localização: São Paulo
Offline
|
Mas se você deixar como final poderá haver um existente por instância. Veja:
Foo.AGORA terá sempre o valor que tiver quando a classe for carregada. Bar.agora terá o valor que tiver quando o construtor de cada instância de Bar rodar. Ou seja, para três instâncias de Bar (b1, b2 e b3), b1.agora terá um valor, b2.agora terá outro e b3.agora terá outro. Entendeu agora?
|
Wilerson "#@®®¡$" de Oliveira
http://mundoestranho.net/blog/
Douglas Adams wrote:I love deadlines. I like the whooshing sound they make as they fly by.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 14:34:08
|
ateubh
JavaEvangelist
![[Avatar]](/images/avatar/bcc2bdb799f873f02080ae277f291da1.jpg)
Membro desde: 27/06/2005 09:37:50
Mensagens: 319
Offline
|
Você pode modificar o conteúdo de uma variável static, mas não de uma final
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 16:02:53
|
jdeveloper
JavaTeenager
Membro desde: 04/08/2005 08:55:58
Mensagens: 160
Offline
|
#@®®¡$ wrote:
Foo.AGORA terá sempre o valor que tiver quando a classe for carregada. Bar.agora terá o valor que tiver quando o construtor de cada instância de Bar rodar. Ou seja, para três instâncias de Bar (b1, b2 e b3), b1.agora terá um valor, b2.agora terá outro e b3.agora terá outro. Entendeu agora?
Correto. Agora entendi.
Mas se eu inicializar ambas com uma constante(compile time), elas se comportarão equivalentemente, correto?
a unica diferença será que no caso de static final eu só terei uma referência na memória...é isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 16:41:36
|
#@®®¡$
Moderador
![[Avatar]](/images/avatar/2288f691b58edecadcc9a8691762b4fd.jpg)
Membro desde: 13/02/2004 09:42:28
Mensagens: 807
Localização: São Paulo
Offline
|
Isso.
|
Wilerson "#@®®¡$" de Oliveira
http://mundoestranho.net/blog/
Douglas Adams wrote:I love deadlines. I like the whooshing sound they make as they fly by.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2006 16:43:04
|
jdeveloper
JavaTeenager
Membro desde: 04/08/2005 08:55:58
Mensagens: 160
Offline
|
#@®®¡$ wrote:Isso.
Obrigado
|
|
|
 |
|
|