120 likes | 227 Views
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
E N D
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. 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
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
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 • criar (C) 2008 Gustavo Motta
2. Modelos orientados a objetos • Problema 2: Representar uma figura • Representação gráfica do modelo de um objeto figura Figura inteiro x, y; logico visivel; Estado movePara(inteiro a, inteiro b) Mostra() Apaga() (C) 2008 Gustavo Motta
Declaração das variáveis do estado do objetoFigura Declaração das operações do objetoFigura 2. Modelos orientados a objetos modelo Figura inicio 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 fim fim do modelo • Problema 2: Representar uma figura • Representação textual numa pseudo-linguagem (C) 2008 Gustavo Motta
0 0 x x 0 0 y y 1 falso falso visivel visivel 2 3 2. Modelos orientados a objetos • Problema 2: Representar uma figura • Criação de figuras com base num modelo • 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 Memória Figura fig1 = criar Figura(); 10 Fig1.movePara(10, 15); 15 Fig1.mostra(); falso verdadeiro Figura fig2 = criar Figura(); A variável fig1 declarada do tipo Figura é uma referência para o objeto criado na memória na posição1 3 Fig2.mostra(); 9 Fig2.movePara(3, 9); verdadeiro Fig1.apaga(); A partir de um mesmo modelo, pode-secriar um número arbitrário de objetos (C) 2008 Gustavo Motta
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 podem acessá-lo para consulta ou modificação • Variáveis que determinam o estado interno de um objeto são chamadas de variáveis de instância (C) 2008 Gustavo Motta
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 abertura de conta após a sua criação (C) 2008 Gustavo Motta
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
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 anteriores nada mais são que classes de objetos! (C) 2008 Gustavo Motta