A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Polimorfismo e Acoplamento Dinâmico

Apresentações semelhantes


Apresentação em tema: "Polimorfismo e Acoplamento Dinâmico"— Transcrição da apresentação:

1 Polimorfismo e Acoplamento Dinâmico
Laboratório de Java Polimorfismo e Acoplamento Dinâmico (Lab. III) Prof. Guido Araújo

2 Coerção automática byte para short, int, long, float, double
short para int, long, float, double char para int, long, float, double int para long, float double long para float, double float para double

3 Upcasting vs. Downcasting
static public void main() { int i; float f; f = (float) i; i = (int) f; } Upcasting: Não perde informação Downcasting: Perde informação

4 Exercício 1 Do diretório contaCor Compilar todos. ContaCor.java
ExemploCoercao.java Compilar todos. Algum erro ? Mude os tipos das variáveis de main() para int O que aconteceu ? Mude agora para float E agora ?

5 Exercício 2(a) (extra) Definir um novo construtor para ContaCor
Parâmetros: nome, num e senha Utilizar this para evitar repetição de código Modificar construtor anterior para que ele use o que você acabou de definir Implementar métodos que retornam: titular, numConta e senha

6 Exercício 2(b) (extra) Definir um programa ExemploDoisConstrutores
Crie dois objetos ContaCor Recebem mesmos valores de titular, numConta e senha Primeiro objeto: usar construtor de quatro parâmetros Valor saldoAtual recebe zero Segundo objeto: usar construtor de 2(a) Incluir código que imprima membros dos objetos Compilar e executar.

7 Exercício 3 (extra) Incluir em ContaCor Compilar e executar.
Lista de dependentes: String[ ] Método para listar dependentes Construtor adicional: Nome titular, saldo inicial, número da conta, senha e lista dedependentes Usar outros construtores na implementação Compilar e executar.

8 instanceof instanceof Testa se um objeto é de um determinado tipo
Retorna true se for verdadeiro { : ContaCor conta; if (conta instanceof ContaEsp)…. }

9 Sobrecarga de Nomes ESCONDE !! class ContaCor { :
-nome do Titular -número da conta -senha -saldo atual +debitaValor() class ContaCor { : public debitaValor(float val) { } class ContaEsp extends ContaCor { ESCONDE !! ContaEsp +limite -debitaValor

10 Polimorfismo (Upcasting)
class A { public void metodo() { : } class B extends A { B b = new B(); b.metodo(); b = new A(); Upcasting

11 Polimorfismo (Downcasting)
class A { public void metodo() { : } class B extends A { A a = new A(); a.metodo(); a = new B(); OK !! Downcasting

12 Downcasting sem Redefinição
class A { public void metodo() { : } class B extends A { public void somenteB() { A a = new A(); a.metodo(); a = new B(); a.somenteB(); Downcasting NÃO FUNCIONA !!!

13 Polimorfismo sem Redefinição com Coerção
class A { public void metodo() { : } class B extends A { public void somenteB() { A a = new A(); a.metodo(); a = new B(); ( (B) a).somenteB(); MAS DÁ CERTO COM CASTING !!!

14 Exercício 4 Arquivos no diretório casting
Estudar cada um dos programas. Compilar e executar entendendo o que está ocorrendo.

15 Exercício 5 Arquivos no diretório contaCor
ContaCor.java ContaEsp.java ExemploPolimorfismoComRedefinição.java Compilar todos e executar o último Porque falhou ? Comentar linhas 15 e 16 E agora ? Qual o resultado ? Como modificar o código para que funcione removendo os comentários ?

16 final class A { final public void metodo() { : } class B extends A {
PERMITE INLINE NÃO PODE REDEFINIR MÉTODO É FINAL

17 Exercício 6 Adicione final ao método debitaValor de ContaCor
Compilar ContaEsp O que ocorreu ? Você saberia explicar ?

18 Exercício 7 (extra) Arquivos do diretório veículos
FilaVeiculo.java Veiculo.java Carro.java Caminhão.java Inicial.java Compile e execute classe Inicial.java 3. Ler os seguites códigos: mostraFila() de FilaVeiculo mostra() de Carro, Caminhão e Veiculo

19 Exercício 8 (cont.) (extra)
Comentar segunda linha de mostra() em Veiculo Recompilar e executar Inicial.java O que ocorreu ? Desfazer modificação Comentar a última linha de mostra() de Carro Recompilar e executar Inicial O que mudou ? Alterar mostra() em Carro para private Recompilar e executar O que significa o resultado


Carregar ppt "Polimorfismo e Acoplamento Dinâmico"

Apresentações semelhantes


Anúncios Google