30.06.2013 Views

Apostila Java

Apostila Java

Apostila Java

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!