Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Encapsulamento e sobrecarga de<br />
métodos<br />
Esta seção apresenta o controle sobre a acessibilidade dos membros de uma classe e a<br />
implementação de classes com comportamento dinâmico através da sobrecarga de<br />
métodos.<br />
Acessibilidade dos membros de uma classe<br />
Considere a criação de uma classe, por exemplo, a classe Avaliacao vista na aula passada. Quando<br />
instanciamos um objeto da classe Avaliacao, seus membros podem acessados por quaisquer outros<br />
objetos presentes na Máquina Virtual <strong>Java</strong> (JVM). Isso é definido pelo modificador public que antecede a<br />
declaração desses membros.<br />
// Acessando os membros da classe carteira de estudante:<br />
Avaliacao notas = new Avaliacao();<br />
// Note que um valor inválido pode ser atribuído<br />
// a um membro público de uma classe<br />
notas.trabalhos[0] = -4.5F; // Nota menor que zero<br />
notas.provas[1] = 20F; // Nota maior que 10<br />
9<br />
Algumas vezes, entretanto, precisamos evitar que valores inválidos ou comportamentos inválidos sejam<br />
atribuídos aos membros de uma classe. No exemplo acima, uma nota jamais poderia ser negativa ou<br />
maior que dez. Como os membros da classe Avaliacao são todos públicos, a consistência desses<br />
membros deve ser garantida externamente ao código da classe, o que torna a consistência dos objetos<br />
dessa classe muito frágil.<br />
Para contornar isso, a Orientação a Objetos define outras formas de acessibilidade aos membros de uma<br />
classe, através dos modificadores final, protected e private. Através desses modificadores, o<br />
programador pode ENCAPSULAR os membros de uma classe, de forma a garantir a sua consistência. O<br />
membro de uma classe pode ser:<br />
o Público – declarado com o modificador public, e acessível por qualquer objeto instanciado na<br />
máquina virtual. Normalmente declaramos públicos apenas alguns métodos de uma classe. Os<br />
membros variáveis são todos declarados privados, salvo raras exceções.<br />
o Privado – declarado com o modificador private, e acessível somente por métodos da de objetos<br />
da própria classe onde o membro foi declarado.