A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Orientação a Objetos Uma Introdução ao Paradigma de Orientação a Objetos e ao Projeto Orientado a Objetos Elaine Harada Teixeira de Oliveira – DCC –

Apresentações semelhantes


Apresentação em tema: "1 Orientação a Objetos Uma Introdução ao Paradigma de Orientação a Objetos e ao Projeto Orientado a Objetos Elaine Harada Teixeira de Oliveira – DCC –"— Transcrição da apresentação:

1 1 Orientação a Objetos Uma Introdução ao Paradigma de Orientação a Objetos e ao Projeto Orientado a Objetos Elaine Harada Teixeira de Oliveira – DCC – ICE - UFAM

2 2 Conceitos As linguagens de POO podem ser divididas em dois grupos: Puras - Projetadas especificamente para o paradigma de OO Smalltalk, Eiffel e Java Híbridas - Extensões de linguagens tradicionais e suportam tanto o estilo tradicional quanto o OO. (C++, Objective-C, CLOS e dialetos OO de Pascal) Alguns conceitos: Objetos e encapsulamento Polimorfismo e ligação dinâmica Classes Herança e subclasses Bibliotecas de classe

3 3 Objetos e Encapsulamento Linguagens tradicionais: dados e procedimentos são consideradas entidades separadas Linguagens OO: entidade única e indivisível – objeto Objeto encapsula os dados e os procedimentos (métodos) Dados só podem ser modificados pelos métodos que são parte do objeto Chamar um método – passar uma mensagem Programa: Sistemas OO – coleção de objetos se comunicando, cooperando para atingir um resultado Processado r virtual

4 4 Exemplo: Um ponto em um plano bidimensional que suporte o seguinte protocolo mensagens: Recuperar a coordenada x Recuperar a coordenada y Retornar um novo ponto igual a inversão do ponto (inverter) Comparar (<) dois pontos (Retorna um booleano) Adicionar (+) dois pontos (Retorna um outro ponto) Objetos e Encapsulamento Estado Variáveis de instância Operações Métodos (código) x y inverter < umPonto + umPonto coordenada x coordenada y

5 5 Objetos e Encapsulamento Encapsulamento – usuários de um objeto não precisam (ou não deveriam) acessar a representação ou a implementação de operações. Duas visões de objetos: uma para usuários potenciais do objeto e outra para os implementadores do objeto Importante para a manutenibilidade e usabilidade Objeto Usuário Modifica estado mensagem Objeto Implementador Modifica Usuário

6 6 Objetos e Encapsulamento No exemplo: Polar (raio, ângulo) ao invés de cartesiano (x, y) Implementação de recuperar a coordenada x iria mudar, mas não afetaria os usuários. Mensagem para recuperar a informação. Terminologia: Método: Um sinônimo para procedimento ou função. Invocado quando uma mensagem é recebida por um objeto. Protocolo: O conjunto de mensagens para as quais o objeto responde

7 7 Polimorfismo e Ligação Dinâmica Uma das características mais importantes a interpretação da mensagem está nas mãos do receptor Polimorfismo: a mesma mensagem pode ser interpretada de diferentes maneiras por diferentes usuários Mensagens podem ser vistas como chamadas de procedimento de ligação tardia Ligação dinâmica: processo de atrasar a determinação do método real a ser invocado até a hora da execução Exemplo: Polimorfismo e ligação dinâmica Ligação dinâmica X Ligação estática Aplicação com figuras geométricas:

8 8 Polimorfismo e Ligação Dinâmica Em linguagem estruturada: Abstração da figura em uma definição de tipo: registro variante ou estrutura com um campo que discrimina entre os diferentes tipos de figuras PROCEDURE Display (umaFigura: Figura); BEGIN CASE umaFigura.figuraTipo OF Triangulo: MostrarTriangulo (umaFigura.Triangulo) Retangulo: MostrarRetangulo (umaFigura.Retangulo) Quadrado: MostrarQuadrado (umaFigura.Quadrado) Circulo: MostrarCirculo (umaFigura.Circulo) END END Similarmente: para mover ou computar a área MostrarTriangulo MostrarRetangulo MostrarQuadrado MostrarCirculo Ligação estática

9 9 Polimorfismo e Ligação Dinâmica Em linguagem OO com ligação dinâmica Implementar um método para cada figura, mas o mesmo nome pode ser usado para cada uma delas Não é responsabilidade do usuário determinar o método correto a ser invocado Vantagens: Sobrecarga de nomes Mais adaptável a mudança Uso de código reutilizável genérico mostrar umaFigura Despachador de mensagem mostrar Triangulo Retangulo Quadrado Circulo mostrar

10 10 Classes Sistemas do mundo real dependem de nossa habilidade de classificar e categorizar Elefantes, tigres, ursos, cavalos e vacas são mamíferos Prata, chumbo e platina são metais Poupança, conta corrente e aplicações são tipos de contas bancárias Características comuns Todos os mamíferos são vertebrados, têm sangue quente e têm pêlo em seu corpo Todos os metais têm peso atômico Todas as contas bancárias têm saldo

11 11 Classes Em POO, classe é a abstração que capta os atributos e operações comuns a um conjunto de objetos Classe é a descrição de um conjunto de objetos com características, atributos e comportamentos semelhantes Uma classe descreve a representação e o protocolo de mensagem seguido por cada um dos membros (instâncias) da classe Instância é um objeto individual que é tanto descrito por uma classe particular como é um membro dela

12 12 Classes A representação do objeto pode ser pensada como um registro em Pascal ou uma estrutura em C – uma coleção de componentes heterogêneos Os campos de um objeto são referidos como variáveis de instância (número da conta, nome do titular e saldo) Variável de instância: dado que é uma parte componente ou campo de um objeto Conta bancária Consultar saldo Retirar Depositar Número da conta Nome do titular Saldo

13 13 Classes Classe: Um repositório para métodos (operações) entendidos por todas as instâncias (objetos) pertencentes àquela classe – um mecanismo de compartilhamento de código Instância: um repositório para dados que descreve o estado de um membro de uma classe OPERAÇÕES Depósito:quantidade Retirada:quantidade Saldo NúmeroConta NomeTitular Elaine Saldo NúmeroConta NomeTitular Gertrudes Saldo NúmeroConta NomeTitular Geraldo Saldo Minha conta bancária Conta bancária da Gertrudes Conta bancária do Geraldo

14 14 Classes Esboço da classe ContaBancária Declaração do nome da classe Declaração de variáveis (NúmeroConta, NomeTitular e Saldo) Métodos (AbrirConta, Retirar, Depositar e ConsultarSaldo), com os argumentos necessários Criar nova instância da classe ContaBancária Mensagem para o método AbrirConta da classe ContaBancária Em muitas linguagens: new Parâmetros: número da conta, nome do titular e saldo de abertura

15 15 Herança e Subclasses Sempre pensamos em objetos como especializações de outros objetos: Metais preciosos - metais Carros esportivos - carros Livros de romance – livros Subclasse, superclasse e diagrama de hierarquia de classe Metal precioso Carro esportivo Livro de romance Metal Carro Livro Conta Bancária Conta Corrente Poupança Aplicação Polígono Quadrilátero Triângulo Retângulo Quadrado

16 16 Herança e Subclasses Relacionamento é-um X Relacionamento parte de Relacionamentos de subclasse são relacionamentos de classe Relacionamentos de parte ou componentes são relacionamentos entre objetos Máquina Pistão Ponto Círculo

17 17 Herança e Subclasses Especialização e generalização Exemplo dos polígonos Zebra – cavalo com listras Subclasse: uma classe que herda métodos e representação de uma classe existente Superclasse: uma classe da qual uma outra classe herda representação e métodos N o Conta Saldo Tempo 5.0 Objeto Conta Bancária Conta Corrente Aplicação Poupança N o Conta Saldo N o Conta Saldo 23.99

18 18 Herança e Subclasses Aplicação – tempo (variável de instância adicional) Subclasses podem adicionar novas variáveis de instância, mas não podem remover Subclasses podem sobrepor a herança de um método de uma superclasse Métodos de implementação idêntica nas subclasses podem ser implementados uma única vez na superclasse Mensagem enviadaQual método é executado umaContaAplicação consultarTempo método da classe C ontaAplicação umaContaCorrente consultarSaldo método herdado da classe C ontaBancária umaContaPoupança consultarTempo erro – nenhum método na superclasse umaContaPoupança imprimir método herdado da classe O bjeto

19 19 Herança e Subclasses OPERAÇÕES Imprimir OPERAÇÕES Depositar: quantidade Retirar: quantidade ConsultarSaldo OPERAÇÕES Retirar: quantidade OPERAÇÕES Depositar: quantidade Retirar: quantidade ConsultarTempo Classe Objeto Classe Conta Bancária Classe Conta Corrente Classe Poupança Classe Aplicações

20 20 Herança e Subclasses Uma nova classe pode diferenciar-se de sua superclasse: Suportando operações adicionais diferentes das herdadas Suportando novas implementações de operações que poderiam ser herdadas Sobrepondo as operações existentes suportadas pela superclasse mas inapropriada para a nova classe adicionando uma operação que sinaliza um erro Acrescentando dados adicionais

21 21 Bibliotecas de Classe Bibliotecas tradicionais são estáticas. Não permitem sobreposição ou extensão de uma rotina Bibliotecas OO permitem customização e extensão através de subclasses Classes Base: Objeto, Booleano, Caracter, Inteiro, Real, Fracionário, Data, Hora, etc. Classes de Coleção: Dicionário, Vetor, String, Símbolo, Conjunto, ColeçãoOrdenada, ColeçãoSorteada, etc. Classes Gráficas: Ponto, Retângulo, Bitmap, etc. (Classes que fornecem acesso às rotinas gráficas) Classes de Interface com o Usuário: Classes que suportam janelas, caixas de diálogo, botões, menus, etc Linguagens OO encorajam a produção de bibliotecas de classe reusáveis

22 22 Resumo de Conceitos POO pode ser caracterizada como: Programação com objetos: Objetos têm estado e pode responder questões sobre eles mesmos. Objeto são tipos de dados. Eles encapsulam o estado ou representação de um objeto junto com as operações naquele estado e suportam o princípio de ocultamento de informação. Passagem de mensagem: Métodos definem como o objeto irá responder a uma dada mensagem. Programação usando polimorfismo: Mensagens podem ser interpretadas de diferentes modos por diferentes receptores. Programação usando herança: Compartilhamento de código é atingido através de herança de representação e métodos de uma classe de objeto para outra. Novas classes são definidas como especializações de classes existentes.


Carregar ppt "1 Orientação a Objetos Uma Introdução ao Paradigma de Orientação a Objetos e ao Projeto Orientado a Objetos Elaine Harada Teixeira de Oliveira – DCC –"

Apresentações semelhantes


Anúncios Google