Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Inicialização de variável.

Olá,

Estou em dúvida em relação a inicialização de variáveis, não sei exatamente quando devo inicializa-las e quando não há necessidade. Até o momento achava que sempre devem ser inicializadas, porém acabei de ver o vídeo da aula "Começando com Orientação a objetos" e no class Conta toda as variáveis não são inicializadas, gostaria de entender melhor essa questão.

Obrigado.

3 respostas

Boa tarde !

João,

Isso é uma escolha dos projetistas da linguagem não inicializar as variáveis ao cria-las, no C++ se não inicializa-las você terá o problema das mesmas buscar lixo na memória. Mas continuando,ao criar um objeto, a alocação de memória do Java efetua a limpeza da memória alocada, e nesse ponto isso é relativamente barato e elimina alguns problemas de segurança, mas no caso de variáveis locais a limpeza pode sair muito cara. Vou dar um exemplo bobo.

for (int i = 0; i < 10000000; ++i) {  
    double d; // se fôssemos limpar a variável "d", teríamos de limpá-la inutilmente 10000000 vezes  
    d = Math.abs (i);   
}

Espero ter lhe ajudado

Efetua a limpeza da memória alocada mas não atribui nenhum valor correto?

Portanto se eu for usar a variável em uma conta, aí sim devo inicializa-la, correto?

Ex: int x; for (int i = 0; i < 100; i++ { System.out.println(i); i += x; }

Muito Obrigado!!!

solução!

Sim, efetua a limpeza sem atribuição de valor. Dependendo do tipo de dado que estiver utilizando você precisará inicializar, listas e coleções de dados. No caso do seu for, o i é iniciado com 0 para evitar qualquer problema, seria mais por segurança.