Variavel de método [resolvido]  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
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

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
[MSN]
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?
discorpio
Virtual Machine Man
[Avatar]
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)
[MSN]
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
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
[MSN]
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
[MSN]
ViniGodoy
Moderador
[Avatar]

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
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team