PROF MSC ROBERTA ANDRADE e PROF MSC GEORGE
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Laboratório de Programação Bacharelado em Sistema de Informação Prof. Msc Roberta Andrade raaf@cin. ufpe. br 12/25/2021 1 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Tópicos n Conceitos de Orientação a Objetos Objeto l Classe l Herança l Composição l Polimorfismo l 12/25/2021 2 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE O paradigma da Orientação a Objetos n Um paradigma é uma forma de abordar um problema. n O paradigma da orientação a objetos surgiu no fim dos anos 60. n Hoje em dia, praticamente suplantou o paradigma anterior, o paradigma estruturado. . . 12/25/2021 3 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE O paradigma da Orientação a Objetos n Alan Kay, um dos pais do paradigma da orientação a objetos, formulou a chamada analogia biológica. n “Como seria um sistema de software que funcionasse como um ser vivo? 12/25/2021 4 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Analogia Biológica n Cada “célula” interagiria com outras células através do envio de mensagens para realizar um objetivo comum. n Adicionalmente, cada célula se comportaria como uma unidade autônoma. 12/25/2021 5 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Analogia Biológica n De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si. n Com isso, ele estabeleceu os princípios da orientação a objetos. 12/25/2021 6 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Orientação a Objetos - Princípios n Tudo é um objeto. n Pense em um objeto como uma super variável: ele armazena dados, mas você também pode fazer requisições a esse objeto, pedindo que ele faça operações sobre si próprio. Em teoria, você pode representar qualquer elemento conceitual no problema que você está tentando resolver (cachorros, livros, sócios, empréstimos, etc. ) como um objeto no seu programa. 12/25/2021 7 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Orientação a Objetos - Princípios Um programa é uma coleção de objetos dizendo uns aos outros o que fazer. n Para fazer uma requisição a um objeto você “manda uma mensagem” para este objeto. Mais concretamente, você pode pensar em uma mensagem como sendo uma chamada de um procedimento ou função pertencente a um objeto em particular. n 12/25/2021 8 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Orientação a Objetos - Princípios Um objeto pode ser composto por vários outros objetos n Em outras palavras: você pode criar um novo tipo de objeto empacotando objetos existentes. Dessa forma, você pode adicionar complexidade a um programa e escondê-la por trás da simplicidade de uso dos objetos. n 12/25/2021 9 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Orientação a Objetos - Princípios Todo objeto tem um tipo. n Usando as palavras certas, cada objeto é uma instância de uma classe, onde classe é um sinônimo de tipo. A questão mais importante relativa a uma classe é “que mensagens eu posso enviar para uma instância dessa classe? ” n 12/25/2021 10 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Orientação a Objetos - Princípios Todos os objetos de um dado tipo podem receber as mesmas mensagens. n Além disso, uma vez que, por exemplo, um objeto do tipo “círculo” é também um objeto do tipo “forma geométrica”, o objeto “círculo” aceita qualquer mensagem endereçada a uma “forma geométrica”. Essa capacidade de “subtituição” de um objeto por outro é um dos mais poderosos conceitos em orientação a objetos. n 12/25/2021 11 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Objeto • Definição: • • Um conceito, uma abstração com significado específico em um contexto Propósito: • • Entidade de software que reflete de alguma forma o mundo real Representar uma entidade do mundo real 12/25/2021 12 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Objeto • Objetos possuem: • • • Identidade Conjunto de características que determinam seu estado Comportamento específico definido por um conjunto de ações 12/25/2021 13 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Abstração n Uma abstração é qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes. 12/25/2021 14 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplos n Beija-Flor Identidade: ‘o beija-flor que vem ao meu jardim’ Características: penas azuis bico fino vôo rápido Comportamento: voar piar 12/25/2021 15 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplo n Pessoa Identidade: ‘Mário’ Características: olhos pretos nasceu em 16/02/70 pesa 70 kg mede 1, 70 m Comportamento: andar falar comer rir 12/25/2021 16 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplo n Telefone Identidade: : número 2576 -0989 Características: azul 2. 4 GHz tone Comportamento: tocar discar 12/25/2021 17 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplo n Ônibus Identidade: placa LXY 7684 Características: cor amarela 30 assentos a diesel Comportamento: frear andar correr buzinar acelerar 12/25/2021 18 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Objeto n Representação Características (estado) Identidade Comportamento Serviços, Interface ou protocolo Mário 12/25/2021 19 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Objeto n Implementação l Interface Visível n l Conjunto de operações Parte encapsulada (escondida) n n Estado do Objeto - Atributos Implementação de suas operações - Métodos Estado do Objeto (valor de seus atributos) Serviços, Operações ou Interface da Classe 12/25/2021 20 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Encapsulamento n Na terminologia da orientação a objetos, diz -se que um objeto possui uma interface. n A interface de um objeto é o que ele conhece e o que ele sabe fazer, sem descrever como o objeto conhece ou faz. n A interface de um objeto define os serviços que ele pode realizar e conseqüentemente as mensagens que ele recebe. 12/25/2021 21 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Encapsulamento n Uma interface pode ter várias formas de implementação. 12/25/2021 22 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Encapsulamento n Mas, pelo Princípio do Encapsulamento, a implementação de um serviço no objeto servidor não importa para o objeto cliente. (O cliente confia em interfaces e não em implementações) 12/25/2021 23 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Classe n Definição: l n Abstrações utilizadas para representar um conjunto de objetos com características e comportamento idênticos Uma classe pode ser vista como uma “fábrica de objetos” 12/25/2021 24 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Classe n Tecnicamente falando, objetos são “instâncias” em tempo de execução de uma classe l Todos os objetos são instâncias de alguma classe l Todos os objetos de uma classe são idênticos no que diz respeito a sua interface e implementação (o que difere um objeto de outro é seu estado e sua identidade) 12/25/2021 25 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplo n classe Identidade: : o beija-flor que vem ao meu jardim Características: instância da cor das penas: azuis classe (objeto) formato do bico: fino velocidade de vôo: rápida Comportamento: voar piar 12/25/2021 26 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplo n classe Identidade: ‘Telefone da minha casa’ Características: marca: Siemens número: 2576 -0989 discagem: pulso instância da classe (objeto) Comportamento: 12/25/2021 27 tocar discar AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Exemplo n classe Identidade: ‘Meu celular’ Características: marca: Nokia número: 99193467 discagem: tom instância da classe (objeto) Comportamento: 12/25/2021 28 tocar discar AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Classes n Classe Instâncias (objetos) 12/25/2021 29 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Atributos n n Descrevem as características das instâncias de uma classe Seus valores definem o estado do Funcionário_Helena objeto Reis O estado de. Nome=Helena um objeto pode mudar Nasc=28/01/1965 Salário = 4. 000 ao longo de Informar. Salário sua existência Funcionário_Mário Nome=Mário Sá contudo, A identidade. Calcular. Idade de um objeto, Nasc=16/02/1970 Salário = 3. 000 nunca muda Informar. Salário Calcular. Idade 12/25/2021 30 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Serviços/Operações n n Representam o comportamento das instâncias de uma classe Correspondem ao protocolo ou Funcionário_Helena ações das instâncias de uma classe 4000 Nome=Helena Reis Nasc=28/01/1965 Salário = 4. 000 Informar. Salário Calcular. Idade 3000 Informar Salário? Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3. 000 Informar. Salário Calcular. Idade 12/25/2021 31 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n O que é herança? l Herdar é derivar características de gerações precedentes. No mundo da Programação Orientada a Objetos, o termo é associado com uma das formas de reutilização de software. Através da herança, novas classes podem ser derivadas classes existentes. A nova classe herda propriedades e métodos da classe base. A nova classe também pode adicionar suas próprias propriedades e métodos 12/25/2021 32 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n Para que serve a herança? ‘ Que métodos estão disponíveis através de uma referência para a Classe. B (isto é, um objeto)? 12/25/2021 33 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n Suponha agora que a classe Classe. B herda de Classe. A Que métodos estão agora disponíveis para uma referência da Classe. B (um objeto) ? 12/25/2021 34 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n Poderoso mecanismo reaproveitamento de para n O objeto obj. B tem agora disponíveis os métodos da Classe. A sem ser necessário reescrevê-los na Classe. B 12/25/2021 35 AULA 02 – Comando Básicos Saturday, December 25, 2021 o código
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n Um objeto da Classe. B também é um objeto da Classe. A. n Facilita a manutenção do código: Os métodos não são replicados. Se for necessário alterar o código do método m 3, basta alterá-lo em Classe. A. n Classe. B pode "recusar" parte da herança reimplementando os métodos herdados 12/25/2021 36 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n A Herança também pode surgir a partir da refatoração de classes existentes de modo a eliminar a duplicação de código Grande quantidade de atributos e métodos duplicados. . . 12/25/2021 37 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Herança n Refatoração Superclasse (características comuns) Subclasses (características específicas) 12/25/2021 38 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo 12/25/2021 39 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo n "Programação Genérica" n Trata objetos na mesma hierarquia de classes como se todos fossem objetos da superclasse n Tornam o programa extensível l l 12/25/2021 40 Facilidade para adicionar novas classes Nesta seção: invocaremos os métodos das subclasses usando referências para a Saturday, December 25, 2021 AULA 02 – Comando Básicos superclasse
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo n Conceito Chave Objetos das subclasses podem ser tratados como objetos da superclasse A classe B É UMA classe A Um objeto da classe B pode ser usado em qualquer lugar onde um objeto A é esperado. B A 12/25/2021 41 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo Classe A operação método invocado m 1() A. m 1() m 2() A. m 2() 12/25/2021 42 Classe B operação método invocado m 1() B. m 1() m 2() A. m 2() 25, 2021 AULA 02 – Comando Básicos m 3() Saturday, December. B. m 3()
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo - Exercício n Interface com o usuário 12/25/2021 43 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo 12/25/2021 44 AULA 02 – Comando Básicos Saturday, December 25, 2021
PROF. MSC ROBERTA ANDRADE e PROF. MSC GEORGE CABRAL CURSO BSI - UFRPE Polimorfismo 12/25/2021 45 AULA 02 – Comando Básicos Saturday, December 25, 2021
- Slides: 45