Introdução à Programação
Um enfoque orientado a construção de
modelos em programas baseados em objetos
Gustavo Motta
Departamento de Informática - UFPB
2. Modelos orientados a objetos
► Conceito
 Modelos orientados a objetos representam o mundo real
por meio de objetos que interagem entre si exibindo um
comportamento pela execução de operações
► Objetos
são entidades que têm
 Identidade
 Atributos determinando um estado
 Comportamento
► Objetos
mais simples são compostos para formar objetos mais
complexos
►A
execução de operações permite a troca de informações entre
os objetos
(C) 2008 Gustavo Motta
2
2. Modelos orientados a objetos
► Problema
2: Representar uma figura com as
seguintes características
 Situa-se em algum um lugar no espaço
 Poder ser movida de um local para outro
 Poder ser apagada
 Poder ser mostrada
(C) 2008 Gustavo Motta
3
2. Modelos orientados a objetos
► Problema
2: Representar uma figura
 Propriedades essenciais – observáveis externamente
►A
figura situa-se num certo lugar no espaço – estado da figura
►A
figura está visível ou invisível – estado da figura também
► As
operações para mover, mostrar e apagar a figura –
comportamento
► Uma
operação para criar uma figura, atribuindo-lhe uma
identidade
(C) 2008 Gustavo Motta
4
2. Modelos orientados a objetos
► Problema
2: Representar uma figura
 Representação das propriedades essenciais
► Estado
da figura
 Posição no espaço
► Par de variáveis x e y do tipo inteiro representando a posição
da figura em coordenadas cartesianas
 Visível ou invisível
► Variável do tipo lógica denominada visivel, a qual só
admite dois valores: verdadeiro ou falso
► Comportamento
 Determinado pela execução das seguintes operações
► movePara(inteiro a, inteiro b)
► mostra()
► apaga()
► Criação
de figuras
 Determinado pela operação
especial de criação chamada
(C) 2008 Gustavo Motta
► criar
5
2. Modelos orientados a objetos
► Problema
2: Representar uma figura
 Representação gráfica do modelo de um objeto figura
Figura
Estado
movePara(inteiro a, inteiro b)
inteiro x, y;
Mostra()
logico visivel;
Apaga()
(C) 2008 Gustavo Motta
6
2. Modelos orientados a objetos
modelo Figura
inicio do modelo
inteiro x = 0, y = 0;
►
logico
visivel = falso;
Declaração das
variáveis do estado do objeto
Figura
Problema 2: Representar uma figura
 Representação textual numa pseudo-linguagem
operacao movePara(inteiro a, inteiro b)
inicio
x = a; y = b;
fim
operacao mostra()
inicio
se (visivel == falso)
inicio
exiba “Figura desenhada na posição “ + x + “, “ + y
visivel = verdadeiro
fim
fim
operacao apaga()
inicio
se (visivel == verdadeiro)
inicio
exiba “Figura apagada na posição “ + x + “, “ + y
visivel = falso
fim
(C) 2008 Gustavo Motta
fim
fim do modelo
Declaração das
operações do objeto
Figura
7
2. Modelos orientados a objetos
► Problema
2: Representar uma figura
quefiguras
foi adotada
uma num modelo
•Note-se
Criação de
com base
Memória
visão abstrata de uma figura
Figura
fig1
= criar
Figura();
10
0
x
com
base
em suas
características
Fig1.movePara(10,
essenciais 15);
0
15
y
1
Fig1.mostra();
•Não foi dada uma forma concreta
falso
visivel
verdadeiro
•Ponto
Figura fig2
= criar Figura();
•Quadradodeclarada do tipo
•Imagem
Figura
é uma referência
para o
Fig2.movePara(3,
9);
•Etc.
A variável fig1
Fig2.mostra();
na posição
feitas
por
A partir de um mesmo modelo, pode-se
1 uma operação são percebidas
criar um número arbitrário de objetos
pelas operações executadas
depois
2
objeto
criado nade
memória
Fig1.apaga();
•Mudanças
estado
(C) 2008 Gustavo Motta
x
0
3
y
0
9
visivel
verdadeiro
falso
3
8
2. Modelos orientados a objetos
► Objetos
 Conceitualmente são entidades que têm um estado, um
comportamento e uma identidade
► Abstraem
entidades do mundo real
 Do ponto de vista de programação
► Um
objeto é uma coleção de operações que compartilham um
estado
► Operações determinam o comportamento do objeto
 Operações também são chamadas de métodos
 Operações definem a interface do objeto, isto é, o meio pelo qual
interagimos com ele independente de como está implementado
►O
estado compartilhado é escondido (encapsulado) do mundo
exterior
 Apenas as operações
modificação
► Variáveis
podem
acessá-lo
para
consulta
ou
que determinam
o estado
interno de um objeto são9
(C) 2008 Gustavo
Motta
chamadas de variáveis de instância
2. Modelos orientados a objetos
► Problema
2: Representar uma conta bancária
simplificada
 A conta mantém informações sobre o correntista, o
saldo em conta e se a conta é especial ou não
 Caso a conta seja especial, o correntista poderá retirar
mais dinheiro do que tem no saldo, isto é, o saldo pode
ficar negativo em contas especiais, mas não em contas
normais
 O correntista poderá também depositar valores e
verificar o saldo atual
 A conta inicialmente está fechada com saldo zero, não é
especial e não pertence a um correntista em particular
► Deve
haver uma operação
para
(C) 2008 Gustavo
Motta abertura de conta após a sua
10
criação
2. Modelos orientados a objetos
► Problema
2: Representar uma conta bancária
 Representação das propriedades essenciais
► Estado
da conta
 ?
► Comportamento
 ?
(C) 2008 Gustavo Motta
11
2. Modelos orientados a objetos
► Classes
 Conceitualmente, conjunto de seres, objetos ou fatos
que apresentam um ou mais aspectos distintivos em
comum (Dic. Houaiss)
 Do ponto de vista de programação
► Uma
classe especifica um conjunto de objetos com estrutura
(variáveis do estado) e comportamento (operações) comuns
► Padrão
(fôrma) para criação de objetos
► Objetos
de uma classe são também chamados de instâncias da
classe
► Uma
classe agrupa objetos com características iguais
 Os modelos vistos na pseudo-linguagem dos exemplos
2008 Gustavo Motta
12
anteriores nada mais(C)são
que classes de objetos!
Download

2. Modelos Orientados a Objetos - Departamento de Informática