Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação...

31
Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto de Sistemas

Transcript of Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação...

Page 1: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

Conceitos de Orientação a Objetos

Renata AraujoRicardo Storino

Núcleo de Computação EletrônicaCurso de Programação de Computadores

Maio a Setembro/2000

Análise e Projeto de Sistemas

Page 2: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

2

Objeto

Definição: Um conceito, uma abstração com significado específico em um

contexto

Propósito: Entidade de software que reflete de alguma forma o

mundo real representar uma entidade do mundo real

Objetos possuem: Identidade Conjunto de características que determinam seu estado Comportamento específico definido por um conjunto de ações

Page 3: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

3

Exemplos

Identidade: ‘Beija-flor Biju’

Características:penas azuisbico finovôo rápido

Comportamento:voarpiar

Identidade: ‘Pessoa Mário’

Características:olhos pretosnasceu em 16/02/70pesa 70kg

mede 1,70mComportamento:

andarfalarcomerrir

Page 4: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

4

Exemplos

Identidade: ‘Telefone da minha casa’

Características:azulnúmero 576-0989tone

Comportamento:tocardiscar

Identidade: ‘ônibus da escola’

Características:cor amarelaplaca LXY 768430 assentos

a dieselComportamento:

frearandarcorrerbuzinaracelerar

Page 5: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

5

Objeto

Mário

Características(estado)

Nome = Mário SáNasc = 16/02/70Salário = 3.000

ComportamentoInformarSalárioCalcularIdade

Identidade

Representação

Funcionário_Mário

Serviços, Interface ou protocolo

Page 6: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

6

Objeto

Implementação Interface Visível

Conjunto de operações Parte encapsulada (escondida)

Implementação Estrutura de dados – Estado Implementação de suas operações - Métodos

Estrutura de Dados(estado)

Serviços,Interface ou protocolo

Page 7: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

7

Objeto

Exemplo: Funcionário Mário Sá

Nome = Mário SáNasc = 16/02/70Salário = 3.000

Estrutura de Dados Serviços,

Interface ou protocolo

InformarSalário

CalcularIdade

Page 8: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

8

Classe

Definição: Abstrações utilizadas para representar um conjunto de

objetos com características e comportamento idênticos

Uma classe pode ser vista como uma “fábrica de objetos”

Objetos de uma classe são denominados “instâncias” Todos os objetos são instâncias de alguma classe Todos os objetos de uma classe são idênticos no que diz respeito a

sua interface e implementação

Page 9: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

9

Exemplo

Identidade: ‘Beija-flor Biju’

Características:cor das penasformato do bicovelocidade de vôo

Comportamento:voarpiar

Pássaro

Características:cor das penas: azuisformato do bico: finovelocidade de vôo: rápida

Comportamento:voarpiar

Identidade: ‘Minha pomba’

Características:cor das penas: cinzaformato do bico: curtovelocidade de vôo: média

Comportamento:voarpiar

Page 10: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

10

Exemplo

Características:cornúmerodiscagem

Comportamento:tocardiscar

Telefone

Identidade: ‘Meu celular’

Características:cor: pretanúmero: 99193467discagem: tone

Comportamento:tocardiscar

Identidade: ‘Telefone da minha casa’

Características:cor: azulnúmero: 576-0989discagem: tone

Comportamento:tocardiscar

Page 11: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

11

Classe

Classe

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Instâncias(objetos)

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Funcionário_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Page 12: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

12

Atributos

Descrevem as características das instâncias de uma classe Seus valores definem o estado do objeto O estado de um objeto pode mudar ao longo de sua existência A identidade de um objeto, contudo, nunca muda

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Funcionário_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Page 13: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

13

Serviços/Métodos

Representam o comportamento das instâncias de uma classe Correspondem ao protocolo ou ações das instâncias de uma

classe

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Funcionário_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

4000

3000

Informar Salário?

Page 14: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

14

Serviços/Métodos

Um método é a implementação de uma operação

Métodos só tem acesso aos dados da classe para a qual foram definidos

Os dados de uma classe só podem ser manipulados por métodos da classe (pelo princípio do encapsulamento)

Métodos possuem argumentos, variáveis locais , valor de retorno etc

Alguns métodos especiais: Construtores – criam objetos de uma classe Destrutores – destroem objetos de uma classe

Page 15: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

15

Mensagens

Objetos são entidades independentes que necessitam se comunicar

Troca de mensagens como paradigma de comunicação entre objetos

Os dados de um objeto não podem ser manipulados ou vistos por outro objeto

Para obter informações ou ativar o comportamento de objetos, é preciso enviar-lhes mensagens

Objetos só reagem a mensagens que fazem parte das ações do protocolo de sua classe

Ao receber uma mensagem, o objeto busca em seu protocolo um método que irá responder a tal mensagem

Page 16: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

16

Mensagens

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

?

ERRO!

4000 Informar Salário?

Calcular Desconto?

Page 17: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

17

Polimorfismo

Possibilidade de enviar uma mesma mensagem para objetos de classes diferentes

Cada uma das classes implementa um método específico para responder à mensagem

Definição de protocolos comuns

Page 18: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

18

Polimorfismo

Círculo

Coordenada XCoordenada YRaio

CalcularÁrea

CírculoXpto

Coordenada X = 10Coordenada Y = 15Raio = 2

CalcularÁrea

CírculoXpto

Coordenada X = 10Coordenada Y = 15Raio = 2

CalcularÁrea

ReatânguloXpto

Coordenada X = 10Coordenada Y = 15Largura = 3Altura = 2

CalcularÁrea

ReatânguloXpto

Coordenada X = 10Coordenada Y = 15Largura = 3Altura = 2

CalcularÁrea

Retângulo

Coordenada XCoordenada YLarguraAltura

CalcularÁrea

CalcularÁrea()

CalcularÁrea(){ área = pi * Raio * Raio; retorna área ;}

12,68

CalcularÁrea(){ área = Largura * Altura; retorna área; }

CalcularÁrea()

6

Page 19: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

19

Herança

Conceito que expressa similaridades entre classes

Estabelecem relacionamentos de generalização-especialização (“é-um”) entre classes

Permitem estabelecer hierarquias de classificação

Page 20: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

20

Herança

Animal Anfíbio

... Sapo Ex. Sapo Cururu

Réptil Mamífero

Roedor Rato Ex. Mickey Mouse ...

Ave

Vegetal

•Mickey Mouse é uma instância de Rato•Mickey Mouse “é um” Roedor•Mickey Mouse “é um” Mamífero•Mickey Mouse “é um” Animal

•Sapo Cururu é uma instância de Sapo•Sapo Cururu “é um” Anfíbio•Sapo Cururu “é um” Animal

•Mickey Mouse mama•Sapo Cururu NÃO mama•Sapo Cururu e Mickey Mouse respiram e têm coração

Page 21: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

21

Herança

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Gerente

NomeNascSalárioProjeto

InformarProjetoInformarSalárioCalcularIdade

Gerente_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Gerente_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000

InformarSalárioCalcularIdade

Projeto = HelpCallCenter

InformaProjeto

Page 22: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

22

Herança

Subclasse(características

específicas)

Superclasse(características comuns)

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Gerente

Projeto

InformarProjeto

Gerente_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000Projeto = HelpCallCenter

InformarSalárioCalcularIdadeInformaProjeto

Gerente_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000Projeto = HelpCallCenter

InformarSalárioCalcularIdadeInformaProjeto

Todo objeto Gerente “é um” objeto Funcionário

Page 23: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

23

Herança

PolimorfismoSuponha que gerentes

recebam um adicional de 5% do salário por gerenciar projetos...

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Gerente

Projeto

InformarProjetoInformarSalário

InformarSalário:

retorna o valor contido no atributo ‘Salário’

InformarSalário:

retorna o valor contido no atributo ‘Salário’ adicionado com 5%

Embora o serviço tenha o mesmo nome,dependendo da classe, terá um comportamentodistinto

Page 24: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

24

Herança

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Gerente_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000Projeto = HelpCallCenter

InformarSalárioCalcularIdadeInformaProjeto

Gerente_Mário

Nome=Mário SáNasc=16/02/1970Salário = 3.000Projeto = HelpCallCenter

InformarSalárioCalcularIdadeInformaProjeto

Polimorfismo

4000 Informar Salário?

3150

Informar Salário?

Page 25: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

25

Herança

Herança Múltipla Classes herdam características de várias classes

Exemplo: Numa empresa administradora de cartões de crédito, alguns de

seus funcionários são também seus clientes...

Page 26: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

26

Herança

Funcionário

NomeNascSalário

InformarSalárioCalcularIdade

Cliente

NomeEndereçoCartãoDébito

InformarCartãoInformarDébito

Funcionário_Cliente

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Helena

Nome=Helena ReisNasc=28/01/1965Salário = 4.000

InformarSalárioCalcularIdade

Funcionário_Cliente_Zé

Nome= Zé PereiraNasc=16/02/1970Salário = 3.000Endereço= Rua Y casa 8Cartão = VisaDébito = 3000Desconto = 10%InformarSalárioCalcularIdadeInformarCartãoInformarDébitoInfromarDesconto

Funcionário_Cliente_Zé

Nome= Zé PereiraNasc=16/02/1970Salário = 3.000Endereço= Rua Y casa 8Cartão = VisaDébito = 3000Desconto = 10%InformarSalárioCalcularIdadeInformarCartãoInformarDébitoInfromarDesconto

Cliente_Márcia

Nome= Márcia SilvaEndereço=Rua X, 201Cartão = CredicardDébito = 1000

InformarCar~tãoInformarDébito

Cliente_Márcia

Nome= Márcia SilvaEndereço=Rua X, 201Cartão = CredicardDébito = 1000

InformarCar~tãoInformarDébito

Desconto

InformarDébito

InformarDesconto

Herança Múltipla

Page 27: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

27

Classe Abstrata

Representação de uma classe que não possui instâncias

Utilizada com objetivo de: diminuir a complexidade auxiliar a classificação e

organização da modelagem

Funcionário

Salário

InformarSalárioCalcularIdade

Cliente

CartãoDébito

InformarCartãoInformarDébito

Indivíduo

NomeEndereçoNasc

InformarNome

Classe sem instâncias

Page 28: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

28

Relacionamentos

Instâncias de classes podem manter relacionamentos com instâncias de outras classes

Associações simples, com significado não definido previamente

Associações com semântica pré-definida

Page 29: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

29

Relacionamentos

Associações Simples

Funcionário Supervisor1,N

Cardinalidade

0,N

Cardinalidade

Um supervisor supervisiona 1 ou vários (1,N) Funcionários

Um Funcionário é supervisionado por nenhum ou vários (0,N) Supervisores

supervisiona

Semântica

Page 30: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

30

Relacionamentos

Agregações Semântica pré-definida de composição

Funcionário Departamento1,N

Cardinalidade

1

Cardinalidade

Um Departamento contém 1 ou vários (1,N) Funcionários

Semântica

Todos os Funcionários pertencem a um Departamento

Page 31: Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000.

31

Cardinalidade

0..1 - nenhum ou apenas um

0..N - nenhum ou vários

1 - somente um

1..N - vários