| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 09:23:44
|
airtonarantes
Debugger
![[Avatar]](/images/avatar/db922619896fd0e04b6e58c897c61841.png)
Membro desde: 12/07/2007 21:48:00
Mensagens: 64
Localização: Maceió
Offline
|
Olá, estava lendo o livro do Deitel e vi uma declaração de atributos de instância como segue abaixo:
Dúvida: Se essa instrução já tem um final, qual seria a real utilidade de ter um static? Pois no livro está sendo criado um objeto da classe que contém essa instrução, entao se eu já tenho um objeto da classe eu não precisaria ter declarado esse atributo como static
Penso que foi colocado assim no livro apenas como didática, visto que ele sempre está usando um objeto para manipular a classe.
[]'s
|
Airton Arantes
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 09:26:48
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
O Java trata diferentemente uma variável "static final" de uma que é simplesmente "final".
Se você tiver 1000000 objetos de uma determinada classe, será criada apenas uma instância de uma variável "static final", mas serão criadas 1000000 instâncias de uma variável que é simplesmente "final".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 09:50:19
|
airtonarantes
Debugger
![[Avatar]](/images/avatar/db922619896fd0e04b6e58c897c61841.png)
Membro desde: 12/07/2007 21:48:00
Mensagens: 64
Localização: Maceió
Offline
|
Nooosssaaa, isso é uma daquelas coisas da qual a pessoa não pode discutir. Simples e direto, não havia pensado por esse lado.
Obrigado, ajudou bastante.
|
Airton Arantes
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 10:11:43
|
leandronsp
Virtual Machine Man
![[Avatar]](/images/avatar/b0dfd1bbadca4092f9d14d7a74085df0.jpg)
Membro desde: 22/03/2008 22:24:29
Mensagens: 520
Localização: São Paulo
Offline
|
thingol wrote:O Java trata diferentemente uma variável "static final" de uma que é simplesmente "final".
Se você tiver 1000000 objetos de uma determinada classe, será criada apenas uma instância de uma variável "static final", mas serão criadas 1000000 instâncias de uma variável que é simplesmente "final".
Vou falar como que eu entendo esse negócio de static final, e por gentileza, alguém me diz se está correta minha forma de pensar ou não ok?
Eu entendo assim: que a variavel é "static" porque ele é da "classe", ou seja, podemos chamar no main:
Ou seja, mesmo que vc tenha 1 trilhão de objetos, vc não pode usar o valor dela a partir de um objeto.
E ela é "final" pq seu valor não pode ser alterado. Se vc mandar imprimir:
Vai sair "2" obviamente. Mas se vc quiser que imprima outro valor, vai ficar apenas na vontade, pq não pode.
Um exemplo de variavel "static final" é a PI, da classe "java.lang.Math".
Chamamos ela asism: pq ela é static, ou seja não preciso dar NEW.
e final pq seu valor é tão somente único: 3,14.............................
|
|
|
 |
|
|
|
|