introdução à programação
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 PresentationTRANSCRIPT
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
(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
(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
(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
(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
(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
(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
(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
(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
(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
(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
(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