Caso você mande imprimir…o valor nesse caso será 0
F
fuz1leiro
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
fuz1leiro
Boa discorpio!
Era exatamente isso que eu precisava saber.
Valeu
S
Silveira.Marcelo
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
publicvoidatribuirValor(){intx=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
publicvoidatribuirValor(){//Classe identificadorDaVariável = new Classe();ClientenomeCliente=newCliente();//....mais código}
Assim você irá evitar erros de tempo de execução
Um abraço
S
Silveira.Marcelo
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.