Variavel de método [resolvido]

7 respostas
F

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:

public class Teste{

    public void testarVariavel(){
        int x;
    }
}

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

7 Respostas

I

Caso você mande imprimir…o valor nesse caso será 0

F

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

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.

F

Boa discorpio!

Era exatamente isso que eu precisava saber.

Valeu :slight_smile:

S

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

public void atribuirValor(){
int x = 0;

x = 2;

System.out.println("O valor da variável é: " + x);

}

Se for uma variável de referência vc deve instanciar o objeto da classe

public void atribuirValor(){
   
   //Classe identificadorDaVariável = new Classe();
     Cliente nomeCliente = new Cliente();
   //....mais código
}

Assim você irá evitar erros de tempo de execução

Um abraço

S

Olá fuz1leiro.

Coloque a solução para que outros possam ver o problema resolvido

ViniGodoy

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:

public class Teste { public static void main(String[] args) { int x; System.out.println("O valor de x é: " + x); } }

Você vai ver que é impossível pois o compilador diz que diz deveria ser inicializado.

Criado 19 de abril de 2010
Ultima resposta 20 de abr. de 2010
Respostas 7
Participantes 5