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

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

O que significa ser Orientado a Objeto?

Apresentações semelhantes


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

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

2 Conceitos básicos: Encapsulamento
Ocultação de informações e implementações Retenção de estado Identidade de objeto Mensagens o que é OO

3 Classes Herança Polimorfismo Generalização o que é OO

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

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

6 Interface do ‘Hominóide’:
Novo: Hominóide // cria uma nova instância virarÀesquerda //vira o Hominóide no sentido anti-horário em 90o virarÀdireita //vira o Hominóide no sentido horário // em 90o o que é OO

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

8 Interface da ‘Grade’: Novo: Grade // cria e retorna uma grade com um // padrão ao acaso iniciar: Quadrado // retorna o quadrado de início finalizar: Quadrado // retorna o quadrado final o que é OO

9 inserirHominó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 exibir // mostra a grade como um padrão // sobre a tela o que é OO

10 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; o que é OO

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

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

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

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

15 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” o que é OO

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

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

18 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” o que é OO

19 - sentido permanece oculto!
Frequentemente: Revela informações Oculta implementações Por exemplo: - a operação posição informa a posição, mas não sabemos como é armazenada internamente! - sentido permanece oculto! o que é OO

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

21 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) o que é OO

22 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” o que é OO

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

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

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

26 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 o que é OO

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

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

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

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

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

32 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”. o que é OO

33 obj1 127654 Instanciação Classe obj2 218654 obj3 417287 o que é OO

34 Classe é o que se desenha e programa
Objeto é o que se cria na hora da execução o que é OO

35 “Memória” ocupada pelos objetos de uma classe C:
métodoA varX varX varX varX varX varX varX métodoB varY varY varY varY varY varY varY varZ varZ varZ varZ varZ varZ varZ métodoC varV varV varV varV varV varV varV varW varW varW varW varW varW varW métodoD id id id id id id id o que é OO

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

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

38 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 o que é OO

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

40 8. Polimorfismo 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 Polimorfismo é a propriedade pela qual um atributo ou variável pode apontar para objetos de diferentes classes em momentos diferentes o que é OO

41 Exemplo: classe Poligono
o que é OO

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

43 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; o que é OO

44 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). o que é OO

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


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

Apresentações semelhantes


Anúncios Google