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