| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 22:13:51
|
fuz1leiro
What is classpath?
Membro desde: 24/02/2010 02:37:07
Mensagens: 7
Offline
|
Galera do guj. Eu gostaria de saber o seguinte de vocês.
Quando eu tenho uma variável de um método, como no exemplo abaixo:
Como vcs podem ver, ela não foi inicializada. Eu sei que uma variavel global é inicializada com o valor default, então minha duvida é:
Quando declaro a variavel int x; o código irá compilar? e se compilar, qual será o valor impresso?
Grato
This message was edited 1 time. Last update was at 19/04/2010 22:40:45
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 22:26:48
|
ideiavida
Entusiasta Java
Membro desde: 01/10/2009 23:05:39
Mensagens: 18
Localização: Salvador-Bahia
Offline
|
Caso você mande imprimir..o valor nesse caso será 0
|
Rodrigo César Nunes
Salvador-Bahia
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 22:30:26
|
fuz1leiro
What is classpath?
Membro desde: 24/02/2010 02:37:07
Mensagens: 7
Offline
|
EU acabei vendo aqui.. se eu mandar imprimir.. o código não vai compilar..
então se eu apenas declarar a variável e não utiliza-la, o codigo irá compilar.. está certo?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 22:35:43
|
discorpio
Virtual Machine Man
Membro desde: 06/02/2010 18:46:46
Mensagens: 547
Localização: Rio de Janeiro
Offline
|
Boa noite Fuzileiro.
Toda variável dentro de um método só entra em escopo (criada em memória) assim que o método for chamado, no momento que o método sai de escopo, ou seja, realiza o seu retorno, ela é automaticamente removida da mémoria pelo gc (Garbage Collector), por esta razão, o compilador Java só vai exigir que voce inicialize a variável dentro do método se ela for utilizada dentro do método. Dá maneira que voce escreveu o compilador vai rodar sem problemas, porém o método não fará nada, somente criar a variável e destruí-la automaticamente
Obs: Se voce declarar variáveis do tipo objeto, e quiser utilizar algum método deste objeto, então voce nunca deve inicializar a variável com "null" e sim deve instanciar o objeto.
|
O Senhor é meu Pastor e nada me faltará. (Sl. 23:01) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 22:40:06
|
fuz1leiro
What is classpath?
Membro desde: 24/02/2010 02:37:07
Mensagens: 7
Offline
|
Boa discorpio!
Era exatamente isso que eu precisava saber.
Valeu
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 22:49:31
|
Silveira.Marcelo
Debugger
Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline
|
Olá amigo
A regra é clara:
Independentemente de ser uma variável local ou global, sempre inicialíze-a pois caso isso não aconteça; irá acontecer a exception java.lang.NullPointerException. Para que isso não aconteça você dever iniciar a variável.
Se for uma variável do tipo primitiva você dever fazer o seguinte:
Exemplo
Se for uma variável de referência vc deve instanciar o objeto da classe
Assim você irá evitar erros de tempo de execução
Um abraço
|
Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2010 23:16:46
|
Silveira.Marcelo
Debugger
Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline
|
Olá fuz1leiro.
Coloque a solução para que outros possam ver o problema resolvido
|
Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2010 07:05:55
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Online
|
Só um detalhe.
Variáveis de método não são inicializadas automaticamente. Do contrário das variáveis de classe.
Para testar isso que falei, tente compilar o código abaixo:
Você vai ver que é impossível pois o compilador diz que diz deveria ser inicializado.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|