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

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

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

Apresentações semelhantes


Apresentação em tema: "Laboratório de Java Polimorfismo e Acoplamento Dinâmico (Lab. III) Prof. Guido Araújo."— Transcrição da apresentação:

1 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 1.Do diretório contaCor ContaCor.java ExemploCoercao.java 2.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) 1.Definir um novo construtor para ContaCor Parâmetros: nome, num e senha Utilizar this para evitar repetição de código 2.Modificar construtor anterior para que ele use o que você acabou de definir 3.Implementar métodos que retornam: titular, numConta e senha

6 Exercício 2(b) (extra) 1.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 2.Compilar e executar.

7 Exercício 3 (extra) 1.Incluir em ContaCor 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 2.Compilar e executar.

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

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

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

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

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 1.Arquivos no diretório casting 2.Estudar cada um dos programas. Compilar e executar entendendo o que está ocorrendo.

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

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

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

18 Exercício 7 (extra) 1.Arquivos do diretório veículos FilaVeiculo.java Veiculo.java Carro.java Caminhão.java Inicial.java 2.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) 1.Comentar segunda linha de mostra() em Veiculo 2.Recompilar e executar Inicial.java O que ocorreu ? 3.Desfazer modificação 4.Comentar a última linha de mostra() de Carro Recompilar e executar Inicial O que mudou ? 5.Alterar mostra() em Carro para private Recompilar e executar O que significa o resultado


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

Apresentações semelhantes


Anúncios Google