Núcleo de Computação Eletrônica
Curso de Programação de Computadores
Maio a Setembro/2000
Análise e Projeto de Sistemas
Conceitos de Orientação a Objetos
Renata Araujo
Ricardo Storino
Objeto

Definição:


Propósito:
 Entidade de software que reflete de alguma forma o
mundo real
 representar uma entidade do mundo real

Objetos possuem:



2
Um conceito, uma abstração com significado específico em um
contexto
Identidade
Conjunto de características que determinam seu estado
Comportamento específico definido por um conjunto de ações
Exemplos
Identidade: ‘Beija-flor Biju’
Identidade: ‘Pessoa Mário’
Características:
Características:
penas azuis
bico fino
vôo rápido
Comportamento:
voar
piar
3
olhos pretos
nasceu em 16/02/70
pesa 70kg
mede 1,70m
Comportamento:
andar
falar
comer
rir
Exemplos
Identidade: ‘Telefone da minha casa’
Características:
azul
número 576-0989
tone
Comportamento:
tocar
discar
Identidade: ‘ônibus da escola’
Características:
cor amarela
placa LXY 7684
30 assentos
a diesel
Comportamento:
frear
andar
correr
buzinar
acelerar
4
Objeto
Representação
Identidade
Características
(estado)
Funcionário_Mário
Nome = Mário Sá
Nasc = 16/02/70
Salário = 3.000
InformarSalário
CalcularIdade
Comportamento
Serviços,
Interface ou
protocolo
Mário
5
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)
6
Serviços,
Interface ou
protocolo
Objeto

Exemplo:

Funcionário Mário Sá
InformarSalário
Estrutura de
Dados
7
Nome = Mário Sá
Nasc = 16/02/70
Salário = 3.000
CalcularIdade
Serviços,
Interface ou
protocolo
Classe

Definição:


Uma classe pode ser vista como uma “fábrica de
objetos”

Objetos de uma classe são denominados “instâncias”


8
Abstrações utilizadas para representar um conjunto de
objetos com características e comportamento idênticos
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
Exemplo
Características:
Comportamento:
cor das penas
formato do bico
velocidade de vôo
Pássaro
Identidade: ‘Beija-flor Biju’
Características:
cor das penas: azuis
formato do bico: fino
velocidade de vôo: rápida
Comportamento:
voar
piar
9
voar
piar
Identidade: ‘Minha pomba’
Características:
cor das penas: cinza
formato do bico: curto
velocidade de vôo: média
Comportamento:
voar
piar
Exemplo
Características:
Telefone
cor
número
discagem
Comportamento:
tocar
discar
Identidade: ‘Meu celular’
Identidade: ‘Telefone da minha casa’
Características:
cor: azul
número: 576-0989
discagem: tone
Comportamento:
tocar
discar
10
Características:
cor: preta
número: 99193467
discagem: tone
Comportamento:
tocar
discar
Classe
Funcionário
Nome
Nasc
Salário
Classe
InformarSalário
CalcularIdade
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
11
Instâncias
(objetos)
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
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_Helena
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
12
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_Helena
4000
Funcionário
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
Nome
Nasc
Salário
InformarSalário
CalcularIdade
InformarSalário
CalcularIdade
3000
Informar
Salário?
13
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
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:


14
Construtores – criam objetos de uma classe
Destrutores – destroem objetos de uma classe
Mensagens
15

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
Mensagens
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
Funcionário_Helena
4000
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
Informar
Salário?
InformarSalário
CalcularIdade
Funcionário_Helena
?
Calcular
Desconto?
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
16
ERRO!
Polimorfismo
17

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
CalcularÁrea()
{
área = pi * Raio * Raio;
retorna área ;
}
Polimorfismo
Círculo
Coordenada X
Coordenada Y
Raio
CalcularÁrea
CírculoXpto
CalcularÁrea()
Coordenada X = 10
Coordenada Y = 15
Raio = 2
CalcularÁrea
12,68
Retângulo
ReatânguloXpto
Coordenada X
Coordenada Y
Largura
Altura
Coordenada X = 10
Coordenada Y = 15
Largura = 3
Altura = 2
CalcularÁrea
CalcularÁrea
18
CalcularÁrea()
{
área = Largura * Altura;
retorna área;
CalcularÁrea()
6
Herança
19

Conceito que expressa similaridades entre classes

Estabelecem relacionamentos de generalizaçãoespecialização (“é-um”) entre classes

Permitem estabelecer hierarquias de classificação
Herança


Anfíbio

...




20
Sapo Ex. Sapo Cururu
Réptil
Mamífero


•Sapo Cururu é uma instância de Sapo
•Sapo Cururu “é um” Anfíbio
•Sapo Cururu “é um” Animal
Animal
Roedor

Rato Ex. Mickey Mouse

...
•Mickey Mouse é uma instância de Rato
•Mickey Mouse “é um” Roedor
•Mickey Mouse “é um” Mamífero
•Mickey Mouse “é um” Animal
Ave
Vegetal
•Mickey Mouse mama
•Sapo Cururu NÃO mama
•Sapo Cururu e Mickey Mouse respiram e têm
coração
Herança
Funcionário
Nome
Nasc
Salário
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
InformarSalário
CalcularIdade
Gerente
Nome
Nasc
Salário
Projeto
InformarProjeto
InformarSalário
CalcularIdade
21
Funcionário_Helena
Gerente_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
Projeto = HelpCallCenter
InformaProjeto
InformarSalário
CalcularIdade
Herança
Todo objeto Gerente “é um” objeto Funcionário
Funcionário
Superclasse
(características comuns)
Subclasse
(características
específicas)
Funcionário_Helena
Nome
Nasc
Salário
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
InformarSalário
CalcularIdade
Gerente_Mário
Gerente
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
Projeto = HelpCallCenter
Projeto
InformarProjeto
22
InformarSalário
CalcularIdade
InformaProjeto
Herança

Polimorfismo
Suponha que gerentes
recebam um adicional
de 5% do salário por
gerenciar projetos...
Funcionário
Nome
Nasc
Salário
InformarSalário
CalcularIdade
InformarSalário:
Gerente
retorna o valor
contido no atributo
‘Salário’ adicionado
com 5%
23
Projeto
InformarProjeto
InformarSalário
InformarSalário:
retorna o valor
contido no atributo
‘Salário’
Embora o serviço tenha
o mesmo nome,
dependendo da classe,
terá um comportamento
distinto
Herança

Polimorfismo
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
4000
Informar
Salário?
InformarSalário
CalcularIdade
Gerente_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
Projeto = HelpCallCenter
InformarSalário
CalcularIdade
InformaProjeto
24
3150
Informar
Salário?
Herança

Herança Múltipla


Exemplo:

25
Classes herdam características de várias classes
Numa empresa administradora de cartões de crédito, alguns de
seus funcionários são também seus clientes...
Herança
Cliente
Funcionário_Helena
Funcionário
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade

Nome
Endereço
Cartão
Débito
Nome
Nasc
Salário
InformarCartão
InformarDébito
InformarSalário
CalcularIdade
Herança Múltipla
Funcionário_Cliente
Desconto
InformarDesconto
InformarDébito
26
Cliente_Márcia
Nome= Márcia Silva
Endereço=Rua X, 201
Cartão = Credicard
Débito = 1000
InformarCar~tão
InformarDébito
Funcionário_Cliente_Zé
Nome= Zé Pereira
Nasc=16/02/1970
Salário = 3.000
Endereço= Rua Y casa 8
Cartão = Visa
Débito = 3000
Desconto = 10%
InformarSalário
CalcularIdade
InformarCartão
InformarDébito
InfromarDesconto
Classe Abstrata


Representação de uma
classe que não possui
instâncias
Utilizada com objetivo de:


Indivíduo
Nome
Endereço
Nasc
diminuir a complexidade
auxiliar a classificação e
organização da
modelagem
InformarNome
Funcionário
27
Classe sem
instâncias
Cliente
Salário
Cartão
Débito
InformarSalário
CalcularIdade
InformarCartão
InformarDébito
Relacionamentos
28

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
Relacionamentos

Associações Simples
Um supervisor supervisiona 1 ou vários
(1,N) Funcionários
Cardinalidade
1,N
Funcionário
Supervisor
supervisiona
0,N
Um Funcionário é supervisionado por
nenhum ou vários (0,N) Supervisores
Cardinalidade
29
Semântica
Relacionamentos

Agregações

Semântica pré-definida de composição
Um Departamento contém 1 ou vários
(1,N) Funcionários
Cardinalidade
1,N
Funcionário
Departamento
1
Todos os Funcionários pertencem a um
Departamento
Cardinalidade
30
Semântica
Cardinalidade
31

0..1 - nenhum ou apenas um

0..N - nenhum ou vários

1 - somente um

1..N - vários
Download

Conceitos OO (aula 2)