Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota

Slides:



Advertisements
Apresentações semelhantes
Programação orientada a objetos
Advertisements

Programação Orientada a Objetos*
Herança, Polimorfismo e Classes Abstratas em Java
Orientação a Objetos: Modificador Final para Métodos e Classes
Herança, sobrecarga e ligação dinâmica zHerança zReferência super zSobrecarga de métodos zSobreposição zLigação dinâmica de métodos zfinal.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Acoplamento Dinâmico
Polimorfismo e Classes Abstratas Profa
Linguagem de Programação II
Wagner Santos C. de Jesus
Membros estáticos.
Orientação a Objetos Classes
Capítulo 9 Herança 1.
Métodos Programação II
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
PLC – Introdução a POO Java
JAVA Orientação a Objetos
Programação I Aula 2 (Métodos)
Linguagem técnica de programação I Java
Estudo dos Conceitos e Paradigmas de Programação
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Classes Abstratas e Interfaces.
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Orientação a Objetos e Java Graduação em Ciência da Computação
Professora Lucélia Oliveira
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
UML e Java, Introdução AB,20001 Diagrama de Classes UML e JAVA Problema Existem diversos tipos de contas bancárias. Todas as contas têm um atributo saldo.
Programação Orientada a Objetos: Reuso
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Linguagem II Exceções.
Wagner Santos C. de Jesus
Orientação a Objetos Parte II
Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Capítulo 6 Exceções.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Decorator POO - Avançado.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Classes Abstratas e Interface
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
Linguagem I Strings.
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Herança e Arquitetura em camadas
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Herança Modelagem e Programação Orientada a Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Laboratório de Programação II Método main Dados e Métodos de Classes.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota

Redefinição de Métodos e Ligação Dinâmica

Subtipos: Verificação Dinâmica com instanceof... Conta c = this.procurar(”567-8"); if (c instanceof Poupanca) ((Poupanca) c).renderJuros(0.01); else System.out.print("Poupança inexistente!");...

Verificação Dinâmica de Tipos Casts e instanceof : –((Tipo) variável) –variável instanceof Tipo –O tipo de variável deve ser supertipo de Tipo –O Cast “((Tipo) variável)” gera uma exceção se “variável instanceof Tipo” retornar false –Casts são essenciais para verificação estática de tipos (compilação)

Número Saldo ,32 Crédito Débito Objeto Conta Especial R. Bônus Bônus 11,60

Número Saldo ,32 Crédito Débito Estados de uma Conta Especial Número Bônus Saldo ,80 895,32 Crédito Débito Número Bônus Saldo ,60 875,32 Crédito Débito Crédito(20) R. Bônus

Número Saldo ,32 Crédito Débito Estados de uma Conta Especial Número Bônus Saldo ,00 887,12 Crédito Débito Número Bônus Saldo ,80 875,32 Crédito Débito R. Bônus() R. Bônus

Contas Especiais: Assinatura public class ContaEspecial extends Conta { public ContaEspecial(String numero) {} public void renderBonus() {} public double getBonus() {} public void creditar(double valor) {} }

Contas Especiais: Descrição public class ContaEspecial extends Conta { private double bonus; public ContaEspecial(String numero) { super (numero); bonus = 0.0; }

public void creditar(double valor) { bonus = bonus + (valor * 0.01); super.creditar(valor); } public void renderBonus() { super.creditar(bonus); bonus = 0; } public double getBonus() { return bonus; }

Redefinição de Métodos Preservação da assinatura: tipos dos argumentos e resultados da redefinição têm que ser iguais aos tipos da definição Semântica e Visibilidade dos métodos redefinidos deve ser preservada Só é possível acessar a definição dos métodos da superclasse imediata (via super )

Usando Contas Especiais... ContaEspecial contae; contae = new ContaEspecial(" "); contae.creditar(200.00); contae.debitar(100.00); contae.renderBonus(); System.out.print(contae.getSaldo());...

Ligações Dinâmicas... Conta conta; conta = new ContaEspecial(" "); ((Conta)conta).creditar(200.00); conta.debitar(100.00); ((ContaEspecial) conta).renderBonus(); System.out.print(conta.getSaldo());...

Ligações Dinâmicas Conta conta; conta = new ContaEspecial(" "); ((Conta)conta).creditar(200.00); “Como existe uma redefinição do método creditar na classe ContaEspecial,o Cast serve para informar a Java qual definição estamos interessados.”

Ligações Dinâmicas Conta conta; conta = new ContaEspecial(" "); conta.debitar(100.00); “Já o método debitar só existe na classe Conta, então Java acessa sua definição diretamente.”

Ligações Dinâmicas Conta conta; conta = new ContaEspecial(" "); ((ContaEspecial) conta).renderBonus(); “Finalmente, o método renderBonus só existe na classe ContaEspecial. Nesse caso, Java deve ser informado através de um Cast onde localizar sua definição. Se isso não for feito, uma exceção será gerada.”

Ligações Dinâmicas Dois métodos com o mesmo nome e tipo: –definição e redefinição, qual usar? O código é escolhido dinamicamente (em tempo de execução) e não estaticamente (em tempo de compilação) Escolha se dá baseado na classe do objeto associado à variável destino do método

Exercício Modifique a classe Banco para que seja possível computar o bônus de uma conta especial. Foi necessário redefinir algum método de Banco? Justifique a sua resposta.

Classe Banco: Assinatura public class Banco { public Banco () {} public void cadastrar(Conta conta) {} public void creditar(String numero, double valor) {} public void debitar(String numero, double valor) {} public double getSaldo(String numero) {} public void transferir(String contaOrigem, String contaDestino, double valor) {} }

Leitura Páginas 20 a 24, e 116 a 120 do livro Dominando o Java (de Patrick Naughton) Seções , 3.1 a 3.6, 5.13 a 5.20, e 8.5 a 8.8 do livro The Java Programming Language (de Ken Arnold e James Gosling)