Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação...
Transcript of Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino Núcleo de Computação...
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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?
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
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
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
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
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
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
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
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?
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...
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
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
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
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
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
31
Cardinalidade
0..1 - nenhum ou apenas um
0..N - nenhum ou vários
1 - somente um
1..N - vários