| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 21:34:04
|
pardal_nb
Virtual Machine Man
Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline
|
Salve pessoal,
seguinte, alguem poderia me explicar o porque do seguinte codigo nao funcionar assim:
e qnd eu mudo para:
ele funciona perfeitamente...
nao consegui entender o motivo pelo qual o conteudo do atributo tenha q ser definido no momento de sua criacao...
[]
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 22:00:27
|
danielbussade
JavaEvangelist
Membro desde: 13/09/2007 09:26:21
Mensagens: 415
Localização: Itaperuna -RJ
Offline
|
Olá o que acontece eh o seguinte o atributo final, quando usado com variável é pra definir uma constante. Ou seja uma variável somente de leitura, não pode receber nenhum valor após ser criado, por isso que tem que ser definido o valor na criação.
Deu pra entender??
Att
|
When you steal from one author, is called plagiarism, when you steal from many is called research.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 22:11:40
|
pardal_nb
Virtual Machine Man
Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline
|
q papo estranho esse seu heim, "deu pra entender?"...rs...dô nada não..heheh..
até onde eu sei, para ser uma constante é necessario definir um atributo como STATIC e FINAL...e nada me impede de definir o valor de um atributo FINAL dps de ter sido criado...caso contrario daria erro na hora de compilar...
faz sentido o q vc falou, mas será q é SÓ isso?!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 22:49:08
|
danielbussade
JavaEvangelist
Membro desde: 13/09/2007 09:26:21
Mensagens: 415
Localização: Itaperuna -RJ
Offline
|
É o deu pra entender pegou mal mesmo, hauauh
Kra realmente, eu achava que depois de marcada como final, eu não poderia atribuir valor a ela, mas testei aqui e funciona normalmente.
Outr coisa interessante é que dentro do método main eu não posso declarar algo do tipo
Resumindo, fui tentar te responde e me confundi ainda mais, huauha, vou deixar o tópico para outra pessoa esclarecer.
Valeu
|
When you steal from one author, is called plagiarism, when you steal from many is called research.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 23:11:33
|
pardal_nb
Virtual Machine Man
Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline
|
danielbussade wrote:
Resumindo, fui tentar te responde e me confundi ainda mais, huauha, vou deixar o tópico para outra pessoa esclarecer.
junte-se aos bons....hehehe...brincadeira..
esse exemplo eu tirei do livro da K&B.....e não consegui compreender de forma clara...vamos aguardar alguém que saiba
=)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2007 00:14:36
|
danielbussade
JavaEvangelist
Membro desde: 13/09/2007 09:26:21
Mensagens: 415
Localização: Itaperuna -RJ
Offline
|
Olá aindei pesquisando e descobri o seguinte:
Acho que o java herdou isto do c++:
"O switch por especificação , compara um valor em relação a várias constantes".
Por isso eu nao consigo usar:
Mas quando coloco o modifcador final, ou transforma variavel em uma constante! E naquele seu primeiro caso:
O x não é considerado "constante", porque ele nao foi inicializado na criação, podendo sofrer alteração de valor,
agora experimente fazer o seguinte:
Isto não compila, porque o x agora é uma constante é pode ser usado no switch!
Att
|
When you steal from one author, is called plagiarism, when you steal from many is called research.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2007 00:39:02
|
pardal_nb
Virtual Machine Man
Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline
|
danielbussade wrote:
O x não é considerado "constante", porque ele nao foi inicializado na criação, podendo sofrer alteração de valor,
agora experimente fazer o seguinte:
Isto não compila, porque o x agora é uma constante é pode ser usado no switch!
Att
isso nao compila pq vc nao pode alterar o valor de um atributo FINAL e ja com valor...neh?!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2007 08:01:47
|
LPJava
GUJ Hacker
Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline
|
pardal_nb wrote:
danielbussade wrote:
O x não é considerado "constante", porque ele nao foi inicializado na criação, podendo sofrer alteração de valor,
agora experimente fazer o seguinte:
Isto não compila, porque o x agora é uma constante é pode ser usado no switch!
Att
isso nao compila pq vc nao pode alterar o valor de um atributo FINAL e ja com valor...neh?!
Sim, apos ter dado o valor ja era.. nao pode ser mais alterado.
|
Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2007 09:05:56
|
danielbussade
JavaEvangelist
Membro desde: 13/09/2007 09:26:21
Mensagens: 415
Localização: Itaperuna -RJ
Offline
|
isso nao compila pq vc nao pode alterar o valor de um atributo FINAL e ja com valor...neh?!
Exatamente!!!
|
When you steal from one author, is called plagiarism, when you steal from many is called research.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/12/2007 13:19:12
|
Raff
Virtual Machine Man
![[Avatar]](/images/avatar/1f8d87e1161af68b81bace188a1ec624.png)
Membro desde: 31/07/2006 10:31:45
Mensagens: 642
Localização: Marilia - SP / São Carlos -SP
Offline
|
danielbussade wrote:É o deu pra entender pegou mal mesmo, hauauh
Kra realmente, eu achava que depois de marcada como final, eu não poderia atribuir valor a ela, mas testei aqui e funciona normalmente.
Outr coisa interessante é que dentro do método main eu não posso declarar algo do tipo
Resumindo, fui tentar te responde e me confundi ainda mais, huauha, vou deixar o tópico para outra pessoa esclarecer.
Valeu
Amigo isso acontece pelo seguinte motivo de uma variavel local, não se dever usar nenhum tipo de modificador de acesso.. o único modificador que se poder usar dentro de uma metodo é o final
|

SCJP 5.0
SCWCD 5.0
Mestrando UFSCAR... |
|
|
 |
|
|