Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Construtores<br />
Conforme avançamos no estudo de programação orientada a objetos, aumentamos o<br />
grau de abstração de nosso discurso - passamos a citar objetos como se eles fossem<br />
palpáveis dentro de nosso sistema. Entretanto, uma visão mais atenta nos lembra que<br />
os objetos continuam sendo abstrações de bits armazenados na memória RAM do<br />
computador. Nesta seção o aluno é orientado a pensar na forma como os sistemas<br />
criam objetos e como os membros de suas classes são organizados na memória em tempo<br />
de execução.<br />
Processo de instanciação de objetos<br />
Quando declaramos uma variável de um tipo abstrato de dado, uma classe, estamos apenas criando um<br />
a referência a um objeto dessa classe. Esse objeto só passará a existir quando o comando new for<br />
interpretado pela JVM. Esse comando instancia um objeto a partir do construtor definido para a classe<br />
em questão.<br />
A instanciação de um objeto em <strong>Java</strong> obedece ao seguinte roteiro:<br />
1. O espaço para o novo objeto é alocado na memória da máquina virtual e inicializado com valores<br />
padrão. Em <strong>Java</strong>, nenhum objeto pode ser instanciado com os valores de seus membros<br />
aleatórios (tal qual ocorre em C++). Por exemplo, quando declaramos um array de inteiros de 30<br />
posições em <strong>Java</strong>, esse array será preenchido com o valor ZERO no momento de sua alocação<br />
na memória .<br />
2. A seguir é executada a inicialização explicita dos membros do objeto, caso essa inicialização<br />
faça parte do código da classe desse objeto.<br />
3. Finalmente, o construtor da classe é executado.<br />
Inicialização explícita de membros variáveis<br />
Quando instanciamos um objeto de um determinada classe, os membros variáveis desse objeto recebem<br />
os seguintes valores padrão:<br />
Tipo: Valor inicial:<br />
int, byte ou long 0<br />
float, double 0.0<br />
Char '' (valor 0)<br />
String ""<br />
Demais classes Null<br />
10