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!