65
1 1 SISTEMAS DE INFORMAÇÃO ACH2002 Orientação a Objetos Professores: Delano Medeiros Beder Fátima L. S. Nunes EACH – USP

ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

1 1

SISTEMAS DEINFORMAÇÃO

ACH2002

Orientação a ObjetosProfessores:Delano Medeiros BederFátima L. S. Nunes

EACH – USP

Page 2: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

2 2

SISTEMAS DEINFORMAÇÃO

O que é abstração ?

Page 3: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

3 3

SISTEMAS DEINFORMAÇÃO

Abstraçãos.f. Operação do espírito, que isola de uma noção um elemento, negligenciando os outros.Resultado desta operação: a brancura considerada em geral, sem ser aplicada a um objeto, é uma abstração.Fazer abstração de uma coisa, não levá-la em consideração.S.f.pl. Idéias quiméricas, desvinculadas da realidade: perder-se em abstrações.

2o semestre 2008 3

Page 4: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

4 4

SISTEMAS DEINFORMAÇÃO

AbstraçãoFocar em aspectos inerentes e

essenciais de uma entidadeem desenvolvimento de software:

O QUE É e o QUE FAZ um objeto, e não como faz

evita comprometimento prematuro com detalhes

2o semestre 2008 4

Page 5: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

5 5

SISTEMAS DEINFORMAÇÃO

AbstraçãoDepende do ponto de vista

2o semestre 2008 5

Page 6: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

6 6

SISTEMAS DEINFORMAÇÃO

Objeto é definido a partir de um tipo abstrato de dados

Combinação de dados e operações (sobre eles) em um elemento único

Ocultamento da informação e implementação

Representação de objetos de um determinado tipo não é visível pelos clientes que usam o usam

Únicas operações diretas sobre objetos são aquelas oferecidas na definição do tipo.

2o semestre 2008 6

Tipos Abstratos de Dados

Page 7: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

7 7

SISTEMAS DEINFORMAÇÃO

Ocultamento da informação e implementaçãoRepresentação de objetos de um determinado tipo

não é visível pelos clientes que usam

Únicas operações diretas sobre objetos são aquelas oferecidas na definição do tipo.

Qual a vantagem do ocultamento?

2o semestre 2008 7

Tipos Abstratos de Dados

Page 8: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

8 8

SISTEMAS DEINFORMAÇÃO

Ocultamento da informação e implementação

implementação do tipo pode ser alterada sem afetar as unidades de programa que fazem uso dele (contanto que mantenha as mesmas operações)

Aumenta a confiabilidade, pois nenhuma outra unidade de programa pode mudar, acidentalmente ou intencionalmente, as representações do tipo, aumentando a integridade de tais objetos

2o semestre 2008 8

Tipos Abstratos de Dados

Page 9: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

9 9

SISTEMAS DEINFORMAÇÃO

Paradigma OOObjeto:

abstração de uma entidade real, cujas características e comportamento são conhecidos

se apresenta a outras entidades por meio de uma interface bem definida

Exemplo:carro é um objeto

características: modelo, marca, ano, corcomportamento: acelera, estaciona, liga

2o semestre 2008 9

Page 10: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

10 10

SISTEMAS DEINFORMAÇÃO

Paradigma OOVisão Interna: define a estrutura e o comportamento

do objeto, ou seja, define características e comportamentos

Visão Externa: interface que define como o objeto é visto por outros objetos

Mensagem: comunicação entre objetos

2o semestre 2008 10

Page 11: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

11 11

SISTEMAS DEINFORMAÇÃO

Paradigma OO

• POO é um paradigma de programação

• A “unidade” de programação é a classe de objetos

• Quais os componentes de uma classe?

2o semestre 2008 11

Page 12: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

12 12

SISTEMAS DEINFORMAÇÃO

Paradigma OO

• POO é um paradigma de programação

• A “unidade” de programação é a classe de objetos

• Quais os componentes de uma classe?

• atributos (características dos objetos)

• métodos (comportamento dos objetos)

2o semestre 2008 12

Page 13: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

13 13

SISTEMAS DEINFORMAÇÃO

Extensão do conceito de Tipos Abstratos de DadosCombinação de dados e operações (sobre eles) em um

elemento único

Classe: definição do Tipo Abstrato de DadosObjeto: cada instância derivada da classe

Representa em software entidades que encontramos no mundo real

2o semestre 2008 13

Orientação a Objetos

Page 14: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

14 14

SISTEMAS DEINFORMAÇÃO

Classe: definição do Tipo Abstrato de DadosObjeto: cada instância derivada da classe

Exemplo:Classe Carro (define um Tipo Abstrato de

Dados denominado Carro)Objetos instanciados a partir da classe Carro:

bmw, mercedes, corsa, fiesta

2o semestre 2008 14

Orientação a Objetos

Page 15: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

15 15

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 15

Orientação a objetos

Page 16: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

16 16

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 16

Orientação a objetos

Page 17: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

17 17

SISTEMAS DEINFORMAÇÃO

Classe: define um conjunto de objetos com a mesma estrutura e o mesmo comportamentoCarro, Pessoa, Aluno são exemplos de classesBMW e Ferrari são dois objetos da classe

CarroJoão e Maria são dois objetos da classe Pessoa

A classe é o que você projeta e programaO objeto é o que você cria (a partir de uma

classe) em tempo de execução

2o semestre 2008 17

Classes / Objetos

Page 18: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

18 18

SISTEMAS DEINFORMAÇÃO

Todo objeto é criado a partir (é uma instância) de uma classe

Dados (atributos) são associados a cada objeto

Classes podem conter atributos gerais (e operações) independentes das diversas instânciasMétodos e atributos estáticos (C++ e Java)

2o semestre 2008 18

Classes / Objetos

Page 19: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

19 19

SISTEMAS DEINFORMAÇÃO

Exemplo: um Estudante e uma Disciplina podem ser considerados objetos, pois qualquer um deles pode ser definido em termos de um conjunto de atributos e operações

Objetos podem se relacionar um com o outroum Estudante pode Cursar uma Disciplinao relacionamento Cursar define uma conexão

específica entre Estudante e Disciplina

2o semestre 2008 19

Objetos

Page 20: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

20 20

SISTEMAS DEINFORMAÇÃO

Outros exemplos de objetos: um computador uma tela de um aplicativo do computador uma reserva de livro um livro um processo de identificação de acessos ilegais numa rede de

computadores um acesso ilegal

2o semestre 2008 20

Objeto = Atributos + Métodos + Encapsulamento

dados funcionalidade(comportamento)

Objetos

Page 21: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

21 21

SISTEMAS DEINFORMAÇÃO

Representam um conjunto de informações, ou seja, elementos de dados que caracterizam um objeto

Exemplos: objeto Estudante

atributos: nome, nro USP, ano de ingresso, data de nascimento, …objeto Disciplina

atributos: nome, código, nro de créditos, pré-requisitos, equivalências, ….

objeto Reserva de Vôoatributos: número da reserva, número do vôo, nome passageiro,

data validade da reserva, prioridade, ….

2o semestre 2008 21

Atributos

Page 22: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

22 22

SISTEMAS DEINFORMAÇÃO

Quando um objeto é mapeado dentro do domínio do software, os processos que podem alterar seus atributos (dados) são denominados Operações ou Métodos

Métodos são invocados por MensagensCada objeto possui seu próprio conjunto de métodosDefinições:

procedimentos definidos e declarados que atuam sobre o objetodescrição de uma sequência de ações a serem executadas pelo

objetoespecificação de COMO o objeto deve FAZER alguma coisasão intrínsecos ao objeto e não podem ser separados dele

2o semestre 2008 22

Métodos

Page 23: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

23 23

SISTEMAS DEINFORMAÇÃO

Podem estar presentes tanto para atributos como para métodos

Em princípio, três categorias de visibilidade podem ser definidas:público: o atributo ou método de um objeto dessa classe pode ser

acessado por qualquer outro objeto (visibilidade externa total)privativo: o atributo ou método de um objeto dessa classe não pode

ser acessado por nenhum outro objeto (nenhuma visibilidade externa)

protegido: o atributo ou método de um objeto dessa classe pode ser acessado apenas por objetos de classes que sejam derivadas dessa por meio do mecanismo de herança

2o semestre 2008 23

Modificadores de Visibilidade

Page 24: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

24 24

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 24

Orientação a objetos

Page 25: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

25 25

SISTEMAS DEINFORMAÇÃO

Outros paradigmas convencionais (estrutural, por exemplo) separam dados e operações sobre eles

O objeto contém tantos os dados quanto as operações:Dados: atributosImplementação das operações:

métodos

2o semestre 2008 25

Dados Procedimentos

Dados

Operações

Encapsulamento

Page 26: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

26 26

SISTEMAS DEINFORMAÇÃO2o semestre 2008 26

Dados(atributos)

Operações(métodos)

Diagrama de Classes UML

Carrocormodelomarcaano

aceleraestacionaliga

Page 27: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

27 27

SISTEMAS DEINFORMAÇÃO

Utilização de encapsulamento para restringir a visibilidade externa de detalhes de informações (dados) ou implementações (operações), os quais são internos à estrutura de encapsulamento

2o semestre 2008 27

Dados

Operações

Não é possível chegar aos dados diretamente

Cliente não tem conhecimento acerca de como as operações são implementadas

Encapsulamento e Ocultamento de Informações

Page 28: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

28 28

SISTEMAS DEINFORMAÇÃO

Exemplo:

2o semestre 2008 28

Encapsulamento e Ocultamento de Informações

Carro

cormodelomarcaano

aceleraestacionaligadefineAnodefineModelo

• Classe Carro encapsula atributos e métodos referentes a um tipo abstrato

• Cada cliente (programa) que usar esta classe para definir objetos não saberá como os métodos foram implementados e não poderá alterar os atributos diretamente.

• Cliente pode usar somente os métodos que lhe serão permitidos.

Page 29: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

29 29

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 29

Orientação a objetos

Page 30: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

30 30

SISTEMAS DEINFORMAÇÃO

Habilidade de um objeto reter seu estadoestado ≅ conjunto de valores de seus atributos

Um objeto é ciente de seu passado (operações que foram executadas previamente)

O estado influencia o comportamento do objeto

2o semestre 2008 30

Retenção de Estado

Page 31: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

31 31

SISTEMAS DEINFORMAÇÃO2o semestre 2008 31

Retenção de EstadoExemplo:

Carro

cormodelomarcaano

aceleraestacionaligadefineAnoexibeAno

• Suponha que foram definidos dois objetos: bmw e corsa

Carro bmw = new Carro()

Carro corsa = new Carro()

• se eu usar o método defineAno para bmw e também usá-lo para corsa, cada um dos objetos guardará o seu próprio ano.

• bmw.defineAno(2008)

• corsa.defineAno(2001)

• bmw.exibeAno() mostrará 2008

• corsa.exibeAno() mostrará 2001

Page 32: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

32 32

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 32

Orientação a objetos

Page 33: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

33 33

SISTEMAS DEINFORMAÇÃO

Propriedade pela qual cada objeto (independentemente de sua classe ou seu estado) pode ser identificado e tratado como uma entidade distinta de softwareO mesmo identificador permanece com o objeto

por toda sua vidaDois objetos nunca podem ter o mesmo

identificadorDois objetos podem ter o mesmo “estado”, porém

suas identidades são distintas

2o semestre 2008 33

Identidade de Objeto

Page 34: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

34 34

SISTEMAS DEINFORMAÇÃO2o semestre 2008 34

Identidade de ObjetoExemplo:

Carro

cormodelomarcaano

aceleraestacionaligadefineAnoexibeAno

• Suponha que foram definidos dois objetos distintos: bmw e corsa

• bmw será identificador do primeiro objeto durante sua existência

• corsa será identificador do segundo objeto durante sua existência

• mesmo que aos atributos dos dois objetos sejam atribuídos os mesmos valores, eles serão objetos distintos

Page 35: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

35 35

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 35

Orientação a objetos

Page 36: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

36 36

SISTEMAS DEINFORMAÇÃO

Um objeto pode se comunicar com outros através da troca de mensagens

Uma mensagem é o veículo pelo qual um objeto remetente obj1 transmite a um objeto destinatário obj2 um pedido para o obj2 aplicar um de seus métodos

Mensagens ocorrem quando ocorre invocações (chamadas a métodos)

2o semestre 2008 36

Mensagens

Page 37: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

37 37

SISTEMAS DEINFORMAÇÃO2o semestre 2008 37

MensagensExemplo:

Estacionamento

quantidadeCarros

adicionaCarro()

• Suponha que o método adicionaCarro faça as seguintes ações:

• instancia um carro

Carro carro1 = new Carro()

• define ano e modelo do carro instanciado

carro1.defineAno(2001)

carro1.defineModelo(“ferrari”)

• Ao invocar os métodos defineAno e defineModelo, está ocorrendo uma troca de mensagens entre um objeto da Classe Estacionamento e um objeto da Classe Carro

Page 38: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

38 38

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 38

Orientação a objetos

Page 39: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

39 39

SISTEMAS DEINFORMAÇÃO

Qual é o conceito de herança no nosso dia-a-dia ???

2o semestre 2008 39

Herança

Page 40: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

40 40

SISTEMAS DEINFORMAÇÃO

O que torna a computação orientada a objetos única é o conceito de herança

Mecanismo que permite definir uma nova classe (subclasse) a partir de uma classe já existente (superclasse)

2o semestre 2008 40

Herança

Page 41: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

41 41

SISTEMAS DEINFORMAÇÃO

A subclasse herda as características da superclasse: os atributos e os métodos da superclasse passam a

ser também atributos e métodos da subclassea subclasse pode adicionar novos atributos e

métodos, e reescrever métodos herdados

Portanto: herança é a habilidade de um objeto derivar seus atributos (dados) e métodos (funcionalidade) automaticamente de outro objeto

2o semestre 2008 41

Herança

Page 42: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

42 42

SISTEMAS DEINFORMAÇÃO

Permite modelar uma hierarquia entre classes: classes mais especializadas (subclasses) herdam propriedades da classe mais geral (superclasse)

Cria uma nova classe inserindo somente as diferenças desta para sua superclasse

Identifica-se a possibilidade de herança por meio da seguinte expressão típica: “é um tipo de”

2o semestre 2008 42

Herança

Page 43: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

43 43

SISTEMAS DEINFORMAÇÃO

Herança: mecanismo para derivar novas classes a partir das classes já existentesExemplo: Classe Caminhão é derivada da Classe CarroCaminhão tem os atributos tamanho e capacidade, além

dos atributos herdados da Classe Carro

Uma classe derivada herda a representação dos atributos e operações públicas da classe base, podendo:adicionar novas operaçõesestender a representação dos atributos sobrepor a implementação de operações já herdadas

2o semestre 2008 43

Herança

Page 44: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

44 44

SISTEMAS DEINFORMAÇÃO2o semestre 2008 44

Diagrama de Classes UML(Herança)

Herança

CarrocormodelomarcaanoaceleraestacionaligadefineAnoexibeAno

CaminhãocormodelomarcaanotamanhocapacidadeaceleraestacionaligadefineAnoexibeAno

CarroImportadocormodelomarcaanopaísaceleraestacionaligadefineAnoexibeAno

superclasse

subclasse

subclasse

Page 45: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

45 45

SISTEMAS DEINFORMAÇÃO

Construção de forma incrementada de software: (Reutilização de Software)

Boa prática:Primeiro, construir classes para lidar com

o caso mais geralEm seguida, a fim de tratar os casos

especiais, definir classes especializadas - herdadas da primeira classe

2o semestre 2008 45

Herança

Page 46: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

46 46

SISTEMAS DEINFORMAÇÃO

Capacidade de SubstituiçãoDeve ser capaz de substituir uma classe

Derivada dentro de qualquer programa que exija uma classe Base e tudo deve funcionar bem

Basicamente, isso significa que, se você escrever um programa supondo que tem um Carro, então pode usar livremente qualquer classe herdada de Carro (Caminhão, CarroImportado).

2o semestre 2008 46

Herança

Page 47: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

47 47

SISTEMAS DEINFORMAÇÃO

Sobrecarga : dar um mesmo nome a mais de um métodoDesde que a assinatura seja diferenteassinatura ↔ parâmetros + retorno

A redefinição de um método em classes diferentes, dentro de uma estrutura de herança é conhecida como overridingNecessita ter a mesma assinatura

2o semestre 2008 47

Sobrecarga (overloading) Redefinição (overriding)

Page 48: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

48 48

SISTEMAS DEINFORMAÇÃO2o semestre 2008 48

OverridingOverloading Novo método

Overloading & Overriding

Page 49: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

49 49

SISTEMAS DEINFORMAÇÃO

A a; // define objeto do tipo A...if usuário diz OKthen a = new B(); // Capacidade de Substituiçãoelse a = new C(); // Capacidade de Substituição...a.x(10); // OK. a.x(“Aula”); // Erro de compilação: x(String) não está // definida na classe A

2o semestre 2008 49

Overloading

Page 50: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

50 50

SISTEMAS DEINFORMAÇÃO

Classes/ObjetosEncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 50

Orientação a objetos

Page 51: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

51 51

SISTEMAS DEINFORMAÇÃO

“O que possui várias formas”

Propriedade de se usar o mesmo nome para métodos diferentes, implementados em diferentes níveis de uma hierarquia de classes

Para cada classe, tem-se um comportamento específico para o método

2o semestre 2008 51

Polimorfismo

Page 52: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

52 52

SISTEMAS DEINFORMAÇÃO

Habilidade pela qual uma única operação pode ser definida em mais de uma classe e assumir implementações diferentes em cada uma dessas classesOverriding de operações

Vinculação tardia (late binding) é a técnica pela qual a operação a ser executada é determinada somente em tempo de execução Java (implementado diretamente)Palavra chave virtual (Linguagem C++)

2o semestre 2008 52

Polimorfismo / Vinculação Tardia

Page 53: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

53 53

SISTEMAS DEINFORMAÇÃO

Polígono p;...if usuário diz OKthen p = new Triângulo();else p = new Retângulo();...p.calcularArea(); // aqui p pode referir-se a um objeto // Triângulo ou a um objeto Retângulo // Capacidade de Substituição

2o semestre 2008 53

Dados

Triângulo

calcularArea

Dados

Retângulo

calcularArea

p

Polimorfismo / Vinculação Tardia

Page 54: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

54 54

SISTEMAS DEINFORMAÇÃO

Permite a cada objeto responder a um formato de mensagem da maneira apropriada à classe (ou subclasse) da qual foi instanciado

Uma mesma operação pode apresentar comportamentos diferentes em classes (ou subclasses) distintas

Uma operação pode ter diferentes implementações, isto é, mais de um método pode implementá-la

2o semestre 2008 54

Polimorfismo

Page 55: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

55 55

SISTEMAS DEINFORMAÇÃO

Uma classe pode herdar características de mais de uma classe, ou seja, pode ter mais de uma superclassea subclasse herda todos os atributos e métodos de todas as

suas superclassesatributos/métodos de um mesmo ancestral que “alcancem” a

subclasse por mais de um caminho na hierarquia são herdados apenas uma vez (são o mesmo atributo/método). Ex. a seguir: atributo cor na hierarquia de Veículo

conflitos em definições paralelas na hierarquia podem gerar ambiguidades (ex. a seguir: método operar na hierarquia de Veículo)

2o semestre 2008 55

Herança Múltipla

Page 56: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

56 56

SISTEMAS DEINFORMAÇÃO2o semestre 2008 56

Atributo:- cor

Método:-operar

Veículo

Veículo Terrestre Veículo Aquático

Atributo:- cor

Método:- operar

Atributo:- cor

Método:- operar

Atributo:- cor

Método:- operar ????

Atributo:- cor

Método:- operar

Atributo:- cor

Método:- operar

Veículo AnfíbioCarro Barco

Herança Múltipla

Page 57: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

57 57

SISTEMAS DEINFORMAÇÃO

EncapsulamentoOcultamento da informação e implementação

(Abstração)Retenção de estadoIdentidade de objetoMensagensClasses/ObjetosHerançaPolimorfismo/Vinculação tardia (late binding)Relacionamento entre classes/objetos

2o semestre 2008 57

Orientação a objetos

Page 58: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

58 58

SISTEMAS DEINFORMAÇÃO

Uma classe pode ser composta por outras classes, consideradas partes ou componentes

2o semestre 2008 58

Composição

Decomposição

Monitor Mouse Teclado

CPU RAM

Computador

“Gabinete”

Agregação e Composição

Page 59: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

59 59

SISTEMAS DEINFORMAÇÃO

A composição é frequentemente referida por relacionamento “todo-parte”, no qual o agregado (“todo”) é composto de partes

2o semestre 2008 59

Composição

Decomposição

Monitor Mouse Teclado

CPU RAM

Computador

“Gabinete”

Agregação e Composição

Page 60: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

60 60

SISTEMAS DEINFORMAÇÃO

Capturam relacionamentos do tipo “todo-parte” entre objetos

Não existe herança entre objetos participando de uma agregação

Agregações reduzem a complexidade ao permitir tratar vários objetos como um único

2o semestre 2008 60

Relacionamento: Agregação

Page 61: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

61 61

SISTEMAS DEINFORMAÇÃO

Nesse tipo de agregação, os objetos da classe “parte” não podem viver quando o objeto “todo” é destruído

Não compartilhamento: os objetos da classe “parte” são componentes de apenas um objeto “todo”

2o semestre 2008 61

Relacionamento: Composição

Page 62: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

62 62

SISTEMAS DEINFORMAÇÃO2o semestre 2008 62

Diagramas de Classes UML (Agregação e Composição)

Agregação X Composição

Page 63: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

63 63

SISTEMAS DEINFORMAÇÃO

Herança é uma relação “é um” Carro é um Veículo

Agregação/Composição é uma relação “é parte de um”Pneu é parte de um CarroMotor é parte de um Carro

2o semestre 2008 63

Herança e Agregação/Composição

Page 64: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

64 64

SISTEMAS DEINFORMAÇÃO

Uma associação nos permite capturar relacionamentos básicos que existem entre conjuntos de objetos

2o semestre 2008 64

Diagramas de Classes UML (Associação)

Associação

Page 65: ACH2002 Orientação a Objetoseach.uspnet.usp.br/digiampietri/ACH2002/notasdeaula/0a... · 2010. 8. 5. · abstrato de dados Combinação de dados e operações (sobre eles) em um

65 65

SISTEMAS DEINFORMAÇÃO

ACH2002

Orientação a ObjetosProfessores:Delano Medeiros BederFátima L. S. Nunes

EACH – USP