Conceitos de Orientação a Objetos
-
Upload
logan-espinoza -
Category
Documents
-
view
27 -
download
0
description
Transcript of Conceitos de Orientação a Objetos
Conceitos de Orientação a Objetos
Herança
Exemplo de herança
Usos de herança
Derivação Pública X Privada
Herança múltipla
Agregação X Generalização
Herança
Herança é um mecanismo para derivar novas classes a partir de classes existentes.
A classe derivada herda a representação de dados e operações de sua classe base.
Pode-se adicionar novas operações, estender a representação dos dados ou redefinir a implementação de operações existentes.
Herança
Documento
autordataDeChegada
imprimir()editar()
Carta Telegrama
transporte
anexar()
hora
registrar()pagar()
Herança
Classe Derivada ou Subclasse ou Classe Filha: é uma classe que herda parte dos seus atributos e métodos de outra classe.
Classe Base ou Superclasse ou Classe Pai: é uma classe a partir da qual classes novas podem ser derivadas.
Classes Ancestrais são aquelas das quais uma superclasse herda.
Classes Descendentes são aquelas que herdam de uma subclasse.
Exemplo de herança
ContaBancária
ContaCorrente
ContaDePoupança
AplDeCurto Prazo
Exemplo de herança
class ContaBancaria { private double saldo; // saldo corrente
public ContaBancaria (double sal){ saldo = sal; }
public void deposita(double valor){ saldo += valor; }
public double retornaSaldo() { return saldo; }};
Exemplo de herança
class ContaDePoupanca extends ContaBancaria {
private double indice;
public double calcula(); public double retira(); };
Exemplo de herança
class ContaCorrente extends ContaBancaria {
private double limite;
private double taxa; public double descontaCheque(double valor); };
Exemplo de herança
class AplCurtoPrazo extends ContaDePoupanca {
private double fundoDisponivel;
public double retornaFundoDisponivel(){ return fundoDisponivel; } };
Herança de implementação
Lista
Pilha
objetoLista
objetoPilha
Classes Objetos Mensagens
AdicionaInicio()
RemoveInicio()
AdicionaFim()
RemoveFim()
AdicionaInicio()
RemoveInicio()
AdicionaFim()
RemoveFim()
Empilha()
Desempilha()
AdicionaInicio()RemoveInicio()AdicionaFim()RemoveFim()
Empilha()
Desempilha()
usaAdicionaFim()
usaRemoveFim()
Herança de comportamento
O mecanismo de herança é empregado para construção de hierarquias de tipos.
Uma hierarquia de tipos é composta de subtipos e supertipos.
Definição de Subtipo: Um tipo S é um subtipo de T se e somente se S
proporciona pelo menos o comportamento de T.
Um objeto do tipo T pode ser substituído por um objeto do tipo S.
Herança de comportamento
Em Ada, uma variável do tipo SMALLINT herda todas as propriedades do tipo INTEGER.
A noção de tipo/subtipo assemelha-se à noção de conjunto/subconjunto.
Todos os objetos Baleia é um subconjunto dos objetos Mamífero.
Herança de comportamento
gato
baleiahumano
mamifero
Mamifero
Humano Baleia Gato
Derivação pública X privada
Em uma derivação pública, todos os atributos e operações publicos de uma classe tornam-se atributos e operações públicos de uma outra classe (subclasse).
Em uma derivação privada, todos os elementos públicos de uma classe tornam-se elementos privados de uma outra classe (subclasse).
Herança múltipla
Mamífero AveEntidade voadora
Morcego Andorinha
Agregação X Generalização
O relacionamento de generalização é muito conveniente para a construção e manutenção de classes relacionadas com a aplicação.
Quando a herança múltipla está envolvida a generalização pode ser confundida com a agregação.
Agregação X Generalização
Herança múltipla permite que novos objetos sejam definidos pela fusão da estrutura e do comportamento de outros objetos diferentes.
Agregação permite que novos objetos sejam definidos pela composição da estrutura e do comportamento de outros objetos diferentes.
Agregação X Generalização
carro
lataria roda banco motor