Escolar Documentos
Profissional Documentos
Cultura Documentos
comp=5124
Resumo
Continuando sobre o assunto de Orientação a Objetos, falaremos sobre sobrecarga de
métodos, polimorfismo, variáveis de referencias e os demais detalhes que você
precisará saber para a prova SCJP 1.5.
Métodos Sobrecarregados são métodos que tem o mesmo nome, mas com argumentos
diferentes, eles possuem estas características:
lista de argumentos diferentes;
podem alterar o tipo de retorno;
podem alterar o modificador de acesso;
declarar exceções verificadas novas ou mais abrangentes;
Não confunda métodos sobrescritos com sobrecarregados, com certeza eles testaram
você para saber seus conhecimentos nisso.
Agora que você já sabe as regras para sobrescrita e sobrecarga de um método, iremos
falar agora de Polimorfismo.
Variável de Referencia
A única maneira de acessar um objeto é usando uma variável de referência, um detalhe
muito importante que você deve saber é que a variável de referência pode se referir a
qualquer subtipo do objeto declarado.
Lembra daquela semântica que foi dito sobre herança? “É UM”. Então podemos tratar
um objeto da classe filha como se fosse um objeto da classe pai.
Veja nesta Figura 01 de um código que já foi usado.
1 de 5 24/11/2010 00:45
Orientação a Objetos - Parte ll http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5124
Figura 01.
Polimorfismo
A primeira coisa que deve vir a sua cabeça quando se trata de polimorfismo é herança,
ela tem que estar bem definido para que você possa entender o conceito, ou seja,
quando a classe B herda de uma classe A, todos os membros (varáveis de instância e
métodos) públicos ou protegidos de A passa a fazer parte de B. Usando outra
abordagem é dizer que polimorfismo é usado usar um tipo genérico de variáveis de
referencia para apontar para tipos de objetos mais específicos.
2 de 5 24/11/2010 00:45
Orientação a Objetos - Parte ll http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5124
3 de 5 24/11/2010 00:45
Orientação a Objetos - Parte ll http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5124
Figura 2.
Veja que usamos alguns conceitos apresentados até agora, vimos herança, que é
fundamental pra que haja o polimorfismo, onde as classes Filha01 e Filha02 herdou as
variáveis de instancia e métodos públicos da sua classe pai. Houve o uso correto de
herança de construtores, e houve o uso correto do uso de variáveis de instância, onde
tratamos um objeto da classe filha como se fosse um objeto da classe pai, à partir daí
iniciá-se o polimorfismo.
Interface
Para o exame você precisará saber como implementar o uso correto de uma Interface,
mas primeiro você precisa saber o que é uma Interface.
Interface é um contrato, onde você estará concordando em fornecer implementações
válidas de cada método definido na Interface e que qualquer pessoa que souber como
são os métodos da interface poderá chama-los na instância de uma classe que a
implemente.
Uma Interface não pode implementar nenhuma classe, somente pode estender outra
interface, e uma classe não estende uma Interface, mas sim à implementa, e podendo
implementar quantas Interfaces desejar.
A classe não abstrata que implementar uma Interface deve declarar todos seus métodos
não declarados. Lembrem-se todos os métodos das Interfaces são implicitamente
públicos, então quando declará-los você precisará indicar explicitamente.
Você nunca poderá acessar um variável não static de um método static, preste muita
atenção pois ele te testarão.
Outro ponto que você deve lembrar é que métodos static não podem ser
sobrecarregados. Porem eles podem ser redefinidos.
Retorno Covariantes
A partir de Java 1.5 você tem a possibilidade de modificar o tipo de retorno de um
método, porém existe uma regra para que isso possa acontecer.
Você pode retornar null em um método que tenha como tipo de retorno a
referencia a um objeto.
Em método com tipo de retorno primitivo, você pode retornar qualquer valor ou
variável que possa ser implicitamente convertido para o tipo de retorno declarado,
e qualquer valor que possa ser explicitamente convertido.
Você pode retornar um array.
Você pode retornar um objeto que passa pela semântica “É UM”, ou seja, um
objeto que possa ser implicitamente convertido para o tipo retornado.
E algo fundamental que você precisa saber é que métodos declarado como void
não deve retornar NADA.
Acoplamento e Coesão
A definição de acoplamento e coesão é subjetivo para a definição do exame, mas o que
você terá que saber é que uma boa estrutura de projetos Orientados a Objetos exige
um acoplamento fraco e uma alta coesão. Mas o que é isso?
Acoplamento é o grau que uma classe depende, interage com outra classe. E coesão
refere a finalidade que a classe foi criada.
Então quanto mais uma classe não depender de outra, isso significa que ela tem o baixo
4 de 5 24/11/2010 00:45
Orientação a Objetos - Parte ll http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5124
acoplamento, e o maior a especialização dela, isso significa alta coesão, você estará
seguindo os princípios da Orientação a Objetos.
www.devmedia.com.br/articles
/viewcomp.asp?comp=5124
5 de 5 24/11/2010 00:45