introdução à programação

12
Introdução à Introdução à Programação Programação Um enfoque orientado a construção de Um enfoque orientado a construção de modelos em programas baseados em modelos em programas baseados em objetos objetos Gustavo Motta Gustavo Motta Departamento de Informática - UFPB Departamento de Informática - UFPB

Upload: arien

Post on 06-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introdução à Programação

Introdução à ProgramaçãoIntrodução à ProgramaçãoUm enfoque orientado a construção de Um enfoque orientado a construção de modelos em programas baseados em modelos em programas baseados em objetosobjetos

Gustavo MottaGustavo MottaDepartamento de Informática - UFPBDepartamento de Informática - UFPB

Page 2: Introdução à Programação

(C) 2008 Gustavo Motta 2

2. Modelos orientados a objetos2. Modelos orientados a objetos

► ConceitoConceito Modelos orientados a objetos representam o mundo Modelos orientados a objetos representam o mundo

real por meio de real por meio de objetosobjetos que que interagem interagem entre si entre si

exibindo um exibindo um comportamentocomportamento pela pela execução de execução de

operaçõesoperações► Objetos são entidades que têmObjetos são entidades que têm

IdentidadeIdentidade

Atributos determinando um estadoAtributos determinando um estado

ComportamentoComportamento

► Objetos mais simples são Objetos mais simples são compostoscompostos para formar objetos para formar objetos

mais complexosmais complexos

► A execução de operações permite a troca de informações A execução de operações permite a troca de informações

entre os objetosentre os objetos

Page 3: Introdução à Programação

(C) 2008 Gustavo Motta 3

► Problema 2: Representar uma Problema 2: Representar uma figurafigura com com

as seguintes característicasas seguintes características Situa-se em algum um lugar no espaçoSitua-se em algum um lugar no espaço

Poder ser movida de um local para outroPoder ser movida de um local para outro

Poder ser apagadaPoder ser apagada

Poder ser mostradaPoder ser mostrada

2. Modelos orientados a objetos2. Modelos orientados a objetos

Page 4: Introdução à Programação

(C) 2008 Gustavo Motta 4

► Problema 2: Representar uma figura Problema 2: Representar uma figura

Propriedades essenciaisPropriedades essenciais – observáveis externamente – observáveis externamente

► A figura situa-se num certo lugar no espaço – A figura situa-se num certo lugar no espaço – estado da estado da

figurafigura

► A figura está visível ou invisível – A figura está visível ou invisível – estado da figura estado da figura tambémtambém

► As operações para As operações para movermover, , mostrarmostrar e e apagarapagar a figura – a figura –

comportamentocomportamento

► Uma operação para Uma operação para criarcriar uma figura, atribuindo-lhe uma uma figura, atribuindo-lhe uma

identidadeidentidade

2. Modelos orientados a objetos2. Modelos orientados a objetos

Page 5: Introdução à Programação

(C) 2008 Gustavo Motta 5

► Problema 2: Representar uma Problema 2: Representar uma figurafigura Representação das propriedades essenciaisRepresentação das propriedades essenciais

► Estado da figuraEstado da figura Posição no espaçoPosição no espaço

► Par de variáveis Par de variáveis xx e e yy do do tipo inteirotipo inteiro representando a posição representando a posição da figura em coordenadas cartesianasda figura em coordenadas cartesianas

Visível ou invisívelVisível ou invisível► Variável do tipo lógica denominada Variável do tipo lógica denominada visivelvisivel, a qual só admite , a qual só admite

dois valores: dois valores: verdadeiroverdadeiro ou ou falsofalso

► ComportamentoComportamento Determinado pela execução das seguintes operaçõesDeterminado pela execução das seguintes operações

► movePara(inteiro a, inteiro b)movePara(inteiro a, inteiro b)► mostra()mostra()► apaga()apaga()

► Criação de figurasCriação de figuras Determinado pela operação especial de criação chamadaDeterminado pela operação especial de criação chamada

► criarcriar

2. Modelos orientados a objetos2. Modelos orientados a objetos

Page 6: Introdução à Programação

(C) 2008 Gustavo Motta 6

► Problema 2: Representar uma Problema 2: Representar uma figurafigura Representação gráfica do modelo de um objeto figuraRepresentação gráfica do modelo de um objeto figura

2. Modelos orientados a objetos2. Modelos orientados a objetos

inteiro x, y;

logico visivel;

Figura

movePara(inteiro a, inteiro b)movePara(inteiro a, inteiro b)

Mostra()Mostra()

Apaga()Apaga()

Estado

Page 7: Introdução à Programação

(C) 2008 Gustavo Motta 7

► Problema 2: Representar uma Problema 2: Representar uma figurafigura Representação textual numa pseudo-linguagemRepresentação textual numa pseudo-linguagem

2. Modelos orientados a objetos2. Modelos orientados a objetosmodelo Figurainicio do modelo inteiro x = 0, y = 0; logico visivel = falso;

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 fimfim do modelo

Declaração das operações do objetoFigura

Declaração das variáveis do estado do objetoFigura

Page 8: Introdução à Programação

(C) 2008 Gustavo Motta 8

1

2

3

► Problema 2: Representar uma Problema 2: Representar uma figurafigura Criação de figuras com base num modeloCriação de figuras com base num modelo

2. Modelos orientados a objetos2. Modelos orientados a objetos

Figura fig1 = criar Figura();

Memória

x

y

visivel

0

0

falso

A variável fig1 declarada do tipo Figura é uma referência para oobjeto criado na memória na posição1

Fig1.movePara(10, 15); 15

10

Fig1.mostra(); verdadeiro

A partir de um mesmo modelo, pode-secriar um número arbitrário de objetos

Figura fig2 = criar Figura();x

y

visivel

0

0

falso

Fig2.mostra();

verdadeiroFig2.movePara(3, 9);

3

9

Fig1.apaga();

falso

•Note-se que foi adotada uma

visão abstrata de uma figuracom base em suas característicasessenciais•Não foi dada uma forma concreta

•Ponto•Quadrado•Imagem•Etc.

•Mudanças de estado feitas por uma operação são percebidas pelas operações executadas depois

Page 9: Introdução à Programação

(C) 2008 Gustavo Motta 9

►ObjetosObjetos Conceitualmente são entidades Conceitualmente são entidades que têm um estado, que têm um estado,

um comportamento e uma identidadeum comportamento e uma identidade ► Abstraem entidades do mundo realAbstraem entidades do mundo real

Do ponto de vista de programaçãoDo ponto de vista de programação► Um objeto Um objeto é uma é uma coleção de operaçõescoleção de operações que que compartilham um compartilham um

estadoestado ► Operações determinam o comportamento do objetoOperações determinam o comportamento do objeto

Operações também são chamadas de Operações também são chamadas de métodosmétodos Operações definem a Operações definem a interface do objetointerface do objeto, isto é, o meio pelo qual , isto é, o meio pelo qual

interagimos com ele independente de como está implementadointeragimos com ele independente de como está implementado

► O estado compartilhado é O estado compartilhado é escondidoescondido (encapsulado) do mundo (encapsulado) do mundo

exteriorexterior Apenas as operações podem acessá-lo para consulta ou Apenas as operações podem acessá-lo para consulta ou

modificaçãomodificação► Variáveis que determinam o estado interno de um objeto são Variáveis que determinam o estado interno de um objeto são

chamadas de chamadas de variáveis de instânciavariáveis de instância

2. Modelos orientados a objetos2. Modelos orientados a objetos

Page 10: Introdução à Programação

(C) 2008 Gustavo Motta 10

► Problema 2: Representar uma conta bancária Problema 2: Representar uma conta bancária simplificadasimplificada A conta mantém informações sobre o correntista, o saldo A conta mantém informações sobre o correntista, o saldo

em conta e se a conta é especial ou nãoem conta e se a conta é especial ou não Caso a conta seja especial, o correntista poderá retirar Caso a conta seja especial, o correntista poderá retirar

mais dinheiro do que tem no saldo, isto é, o saldo pode mais dinheiro do que tem no saldo, isto é, o saldo pode ficar negativo em contas especiais, mas não em contas ficar negativo em contas especiais, mas não em contas normaisnormais

O correntista poderá também depositar valores e O correntista poderá também depositar valores e verificar o saldo atualverificar o saldo atual

A conta inicialmente está fechada com saldo zero, não é A conta inicialmente está fechada com saldo zero, não é especial e não pertence a um correntista em particularespecial e não pertence a um correntista em particular► Deve haver uma operação para abertura de conta após a sua Deve haver uma operação para abertura de conta após a sua

criaçãocriação

2. Modelos orientados a objetos2. Modelos orientados a objetos

Page 11: Introdução à Programação

(C) 2008 Gustavo Motta 11

► Problema 2: Representar uma conta Problema 2: Representar uma conta

bancáriabancária

Representação das propriedades essenciaisRepresentação das propriedades essenciais

►Estado da contaEstado da conta

??

►ComportamentoComportamento

??

2. Modelos orientados a objetos2. Modelos orientados a objetos

Page 12: Introdução à Programação

(C) 2008 Gustavo Motta 12

► ClassesClasses Conceitualmente, conjunto de seres, objetos ou fatos Conceitualmente, conjunto de seres, objetos ou fatos

que apresentam um ou mais aspectos distintivos em que apresentam um ou mais aspectos distintivos em comumcomum (Dic. Houaiss) (Dic. Houaiss)

Do ponto de vista de programaçãoDo ponto de vista de programação► Uma classe especifica um conjunto de objetos com estrutura Uma classe especifica um conjunto de objetos com estrutura

(variáveis do estado) e comportamento (operações) comuns(variáveis do estado) e comportamento (operações) comuns ► Padrão (fôrma) para criação de objetosPadrão (fôrma) para criação de objetos► Objetos de uma classe são também chamados de Objetos de uma classe são também chamados de instâncias da instâncias da

classeclasse► Uma classe agrupa objetos com características iguaisUma classe agrupa objetos com características iguais

Os modelos vistos na pseudo-linguagem dos exemplos Os modelos vistos na pseudo-linguagem dos exemplos anteriores nada mais são que anteriores nada mais são que classes de objetosclasses de objetos!!

2. Modelos orientados a objetos2. Modelos orientados a objetos