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

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

O que é OO1 O que significa ser Orientado a Objeto?

Apresentações semelhantes


Apresentação em tema: "O que é OO1 O que significa ser Orientado a Objeto?"— Transcrição da apresentação:

1 o que é OO1 O que significa ser Orientado a Objeto?

2 o que é OO2 Conceitos básicos: zEncapsulamento zOcultação de informações e implementações zRetenção de estado zIdentidade de objeto zMensagens

3 o que é OO3 zClasses zHerança zPolimorfismo zGeneralização

4 o que é OO4 Exemplo: Hominóide se movendo num tabuleiro! I F

5 o que é OO5 Regras: 1.Ir da posição I até F 2.Andar em linha reta ou curvas de 90 o 3.Passa por todos os quadrados 4.Não bater nas paredes (pareceria idiota) 5.Classes já existentes: grade e homonóide

6 o que é OO6 Interface do Hominóide: zNovo: Hominóide // cria uma nova instância zvirarÀesquerda //vira o Hominóide no sentido anti- horário em 90 o zvirarÀdireita //vira o Hominóide no sentido horário // em 90 o

7 o que é OO7 … zavançar (semPularQuadrados: Inteiro, out avançarOK: boolean) // mover o hominóide vários // quadrados no sentido apontado e // retornar OK se bem-sucedido zposição: Quadrado // retorna o quadrado atual zapontandoParaParede: Booleano // informa se o hominóide vai bater

8 o que é OO8 Interface da Grade: zNovo: Grade // cria e retorna uma grade com um // padrão ao acaso ziniciar: Quadrado // retorna o quadrado de início zfinalizar: Quadrado // retorna o quadrado final

9 o que é OO9 … zinserirHominóide (hom: Hominóide, posição: Quadrado, out inserirOK: Booleano) // posiciona o hominóide na grade // determinada e na posição // especificada e retorna ok zexibir // mostra a grade como um padrão // sobre a tela

10 o que é OO10 Programa OO: var grade: Grade := Grade.Novo; var hom1: Hominóide := Hominóide.Novo; var inserirOK: Booleano; var avançarOK: Booleano; var iniciarQuadrado: Quadrado; const umQuadrado = 1;

11 o que é OO11 … iniciarQuadrado := grade.iniciar; grade.inserirHominóide (hom1, iniciarQuadrado, out inserirOK); if not inserirOK then aborte tudo!; endif;

12 o que é OO12 … // posiciona hominóide no sentido correto repeat 4 times max or until not hom1.apontandoParaParede hom1.virarÀEsquerda; endrepeat; grade.exibir; hom1.exibir;

13 o que é OO13 … repeat until hom1.posição = grade.finalizar if hom1.apontandoParaParede then hom1.virarÀEsquerda; if hom1.apontandoParaParede then hom1.virarÀDireita; hom1.virarÀDireita; endif; hom1.avançar (umQuadrado, out avançarOK); hom1.exibir; endrepeat;

14 o que é OO14 … é o agrupamento de idéias afins em uma unidade, conceito esse que pode ser informado em uma única palavra 1. Encapsulamento Conceito de sub-rotina é um encapsulamento de instruções!

15 o que é OO15 Encapsulamento OO: … é o pacote de operações e atributos o qual representa o estado em um tipo de objeto, de tal forma que o estado é acessível ou modificável somente pela interface provida pelo encapsulamento

16 o que é OO16 Objeto hominóide: hom1 posição sentido virarÀDireita virarÀEsquerda avançar exibir apontandoParaParede posição OperaçõesAtributos

17 o que é OO17 Visibilidade das operações e atributos: zPúblicos zPrivados a menos que explicitamente mencionado, as operações e atributos são considerados privados

18 o que é OO18 2. Ocultação de informações e implementações … é a utilização do encapsulamento para restringir a visibilidade externa de certos detalhes de informações ou implementações, os quais são internos à estrutura de encapsulamento

19 o que é OO19 zFrequentemente: yRevela informações yOculta implementações zPor exemplo: - a operação posição informa a posição, mas não sabemos como é armazenada internamente! - sentido permanece oculto!

20 o que é OO20 Benefícios da ocultação: 1.Localiza as decisões de desenho 2.Desacopla o conteúdo das informações da sua forma de representação

21 o que é OO21 3. Retenção de Estado Um objeto memoriza o seu estado (conjunto de valores que caracterizam a sua situação anterior/atual) Por exemplo: o hominóide, constantemente, sabe a sua posição e sentido de deslocamento (mecanismo interno!). (sub-rotinas convencionais não possuem memória de suas execuções anteriores)

22 o que é OO22 4. Identidade de Objeto … é a propriedade pela qual cada objeto (independentemente de sua classe ou seu estado) pode ser identificado e tratado como uma entidade distinta de software

23 o que é OO23 Objeto hominóide: hom1 posição sentido virarÀDireita virarÀEsquerda avançar exibir apontandoParaParede posição Objeto Identificador do Objeto

24 o que é OO24 var hom1: Hominóide := Hominóide.Novo; zRegras básicas: 1.O mesmo identificador permanece com o objeto por toda sua vida 2.Dois objetos nunca podem ter o mesmo identificador yhom1 aponta para o ID (820657)

25 o que é OO25 Atribuindo um objeto a outro: var hom2: Hominóide := hominóide.Novo; // ID: hom1 := hom2; // ID ?? zhom1 e hom2 passam a apontar para o mesmo objeto (hom1 desapareceu! – coletor de lixo deve remover o espaço ocupado)

26 o que é OO26 5. Mensagens Uma mensagem é o veículo pelo qual um objeto remetente obj1 transmite a um objeto destinatário obj2 um pedido para o obj2 aplicar um de seus métodos. Obs: O obj2 pode ser o próprio obj1

27 o que é OO27 Estrutura da mensagem: 1.O identificador do obj2 (o obj1 normalmente deve armazenar o ID do obj2!) 2.O nome da operação do obj2 que o obj1 deseja executar 3.Informações suplementares (argumentos) que o obj2 necessitar para a execução de sua operação

28 o que é OO28 zRemetente / cliente : objeto que envia a mensagem zDestinatário / servidor (serviço) : objeto que recebe a mensagem Ex: hom1.virarÀDireita; [call virarÀDireita (hom1);]

29 o que é OO29 Estrutura da mensagem: zAssinatura da operação alvo: yNome da operação yLista de argumentos de entrada yLista de argumentos de saida (retorno) hom1.avançar (in semPular, out avançarOK); objeto nome arg entrada arg de saída mensagem

30 o que é OO30 Papéis dos objetos em mensagens: zRemetente de uma mensagem zDestinatário de uma mensagem zIndicado por uma variável no interior de outro objeto zIndicado por um argumento passado por uma mensagem (em linguagem OO pura os argumentos sempre são objetos!)

31 o que é OO31 Tipos de mensagens: zInformativa – fornece informações a um objeto para que ele se atualize zInterrogativa – solicita que um objeto revele alguma informação sobre si próprio hom1.posição zImperativa – solicita a um objeto que faça algo para si, outro objeto ou o meio ambiente hom1.avançar

32 o que é OO32 6. Classes Uma classe é a matriz da qual são gerados objetos. Cada objeto tem a mesma estrutura e comportamento da classe que lhe deu origem. Se um obj pertence à classe C, dizemos que obj é uma instância de C.

33 o que é OO33 Classe obj1 obj2 obj3 Instanciação

34 o que é OO34 zClasse é o que se desenha e programa zObjeto é o que se cria na hora da execução

35 o que é OO35 Memória ocupada pelos objetos de uma classe C: métodoB métodoA métodoC métodoD varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id Objeto 1 Objeto 2Objeto 3Objeto 4Objeto 5 Objeto 6 Objeto 7

36 o que é OO36 zOperações e atributos de instâncias de objetos zOperações e atributos de classe de objetos Ex: objeto1.Novo

37 o que é OO37 Memória ocupada pelos objetos e pela própria classe: métodoB métodoA métodoC métodoD varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id varX varY varZ varV varW id Objeto 1 Objeto 2 Objeto 3 Objeto 4Objeto 5 Objeto 6 varP varQ varR métodoF métodoE Variáveis de classe Métodos de classe

38 o que é OO38 7. Herança A herança é a habilidade que uma classe D possui de usar os atributos e operações de uma classe C, como se os mesmos tivessem sido definidos para ela. C é uma superclasse de D D é uma subclasse de C

39 o que é OO39 exemplo: Aeronave Planador Rota: Ângulo desviar seCaboAcoplado: Booleana soltarCaboDeReboque

40 o que é OO40 8. Polimorfismo (A)Polimorfismo é a habilidade pela qual uma única operação ou nome de atributo pode ser definido em mais de uma classe e assumir implementações diferentes (B)Polimorfismo é a propriedade pela qual um atributo ou variável pode apontar para objetos de diferentes classes em momentos diferentes

41 o que é OO41 Exemplo: classe Poligono

42 o que é OO42 Exemplo (de A): Polígono Retângulo área Calcular Área Hexágono … Triângulo Calcular Área

43 o que é OO43 Exemplo (de B): var p: Polígono; var t: Triângulo := Triângulo.Novo; var h: Hexágono := Hexágono.Novo; … If usuário diz OK then p:=t else p:=h endif; …

44 o que é OO44 9. Generalização Generalização é a construção de uma classe C de forma que uma ou mais classes que ela utiliza internamente é fornecida somente em tempo de execução (quando o objeto da classe C é gerado).

45 o que é OO45 Exemplo: Classe ÁrvoreBalanceada … var atualNó: ClasseDoItemNó := ClasseDoItemNó.Nova; … atualNó.imprimir; …


Carregar ppt "O que é OO1 O que significa ser Orientado a Objeto?"

Apresentações semelhantes


Anúncios Google