Conceitos de Orientação a Objetos

2,294 views

Published on

O objetivo desta apresentação é fornecer conceitos introdutórios sobre Orientação a Objetos que podem servir de base para o aprendizado de qualquer linguagem de programação com suporte para esse paradigma.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,294
On SlideShare
0
From Embeds
0
Number of Embeds
71
Actions
Shares
0
Downloads
120
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Conceitos de Orientação a Objetos

  1. 1. Conceitos de Orientação a Objetos Compilado com base nas referências por José Augusto Cintra Professor da Faculdade Sumaré – SP Analista deTI da Empresa PRODAM – SP josecintra@josecintra.com http://www.josecintra.com/blog
  2. 2. Introdução O objetivo desta apresentação é fornecer conceitos introdutórios sobre Orientação a Objetos que podem servir de base para o aprendizado de qualquer linguagem de programação com suporte para esse paradigma.
  3. 3. Paradigmas de Programação Todo programa de computador é composto de dois elementos principais: Na programação tradicional (programação estruturada) dados e operações são tratados separadamente, no que chamamos de programação procedural ou programação orientada a procedimentos. Já, a programação orientada a objetos é um novo paradigma em que dados e operações são tratados em uma única unidade de programação chamada de OBJETO.
  4. 4. Programação Estruturada Processamento (Operações) Dados Dados Dados
  5. 5. Programação Orientada a Objetos
  6. 6. Orientação a Objetos  Orientação à objetos é uma estratégia para organizar sistemas como coleções de objetos que interagem entre si e combinam dados e operações  Objeto é uma entidade que combina estrutura de dados e comportamento funcional  Estamos sempre identificando qualquer objeto ao nosso redor. Para isso os classificamos em grupos, de acordo com suas características, ou seja, separamos os objetos em classes.  Esses objetos se relacionam uns com os outros, podendo compartilhar dados e operações comuns.
  7. 7. Princípios da OO • Abstração • Classes,objetos,atributos e métodos • Encapsulamento • Hereditariedade • Polimorfismo
  8. 8. Abstração • Ato de separar um ou mais elementos de uma totalidade complexa, os quais só mentalmente podem ser separados • Ignorar aspectos não relevantes • É a capacidade de focalizar o essencial e ignorar detalhes acidentais não relacionados com o objetivo estabelecido.
  9. 9. Abstração
  10. 10. Classes, Objetos, Atributos e Métodos • Os Objetos do mundo real possuem duas características: estado e comportamento. • Exemplos:  Aluno  Estado: Nome, RA, Notas, Etc.  Comportamento: Calcular Média,Verificar Situação, Etc.  Bicicletas  Estado: Marcha atual, velocidade atual, Etc.  Comportamento:Trocar marcha, freiar, Etc.  Conta Corrente  Estado: Saldo, Correntista, Etc.  Comportamento: Sacar, Depositar, Etc.
  11. 11. Classes, Objetos, Atributos e Métodos Exemplos de Objetos ObjetoAutomóvel: Opala placa XYZ-9999Objeto Pessoa: Gisele Bündchen ObjetoAluno: João Nota: 10
  12. 12. • Identificar o estado e o comportamento de objetos do mundo real é o primeiro passo para começar a pensar em programação OO. • Observe um objeto e pergunte: • Quais os possíveis estados que esse objeto pode estar? Ou seja, quais são os atributos ou propriedades ou dados que ele apresenta e pode armazenar? • Quais os possíveis comportamentos que ele pode executar? Ou seja, quais as operações que podemos realizar com esses dados? Classes, Objetos, Atributos e Métodos
  13. 13. • A unidade fundamental de programação em orientação a objetos (POO) é a classe. • Classes contém: • Atributos: determinam o estado do objeto • Métodos: são as operações, os comportamentos disponíveis para manipular os atributos Classes, Objetos, Atributos e Métodos
  14. 14. Fazendo uma analogia, uma classe é como se fosse um gabarito, uma planta de uma casa.As casas seriam os objetos. Classes, Objetos, Atributos e Métodos
  15. 15. • As classes provêem a estrutura para a construção de objetos - estes são ditos instâncias das classes Classe Aluno Nome Matrícula Notas calcularMedia() verificarSituacao() ... Instâncias João 193.31.098-7 7,5 Maria 195.31.022-5 8,7 atributos métodos Classes, Objetos, Atributos e Métodos
  16. 16. Classes, Objetos, Atributos e Métodos
  17. 17. Classes, Objetos, Atributos e Métodos
  18. 18. Herança  Mecanismo simples e poderoso do paradigma OO que permite que uma nova classe seja descrita a partir de uma classe já existente.  Herança é um mecanismo que permite a uma classe herdar todo o comportamento e os atributos de outra classe  Classe mãe: superclasse, classe base  Classe filha: subclasse, classe derivada  Classe filha (mais específica) herda atributos e métodos da classe mãe (mais geral)  Classe filha possui atributos e métodos próprios.
  19. 19. Mecanismo da Herança  Entre uma classe e a sua superclasse, é estabelecida uma relação de especialização que estabelece as seguintes propriedades entre uma subclasse B e a sua superclasse A: 1. B herda deA todas as variáveis e métodos de instância (exceto os privados) 2. B pode definir novas variáveis e novos métodos próprios. 3. B pode redefinir variáveis e métodos herdados. Classe A Classe B
  20. 20. Herança – Exemplo Pessoa nome endereço comer dormir Estudante RA Notas matricular Calcular Média Trabalhador RF Salário Registrar Calcular Salário superclasse (mais genérica) subclasse (mais específica) subclasse (mais específica) generalização •2 atributos •2 operações •3 atributos •4 operações •4 atributos •4 operações especialização
  21. 21. Herança – Hierarquia transporte terrestre aéreo carro avião OVNI carro luxo
  22. 22. • Todo método definido em um ancestral pode ser acessado através dos descendentes • O polimorfismo ocorre quando um método definido no ancestral é redefinido no descendente com um comportamento diferente. Polimorfismo
  23. 23. • As classes fazem a mesma operação (método), mas de forma diferente. Polimorfismo
  24. 24. • O objeto “chamador” apenas precisa referenciar o método. Polimorfismo
  25. 25. • POLI (muitas) + MORPHOS (formas) • Está estritamente relacionado com a herança. Polimorfismo
  26. 26. • Ocultar aspectos não relevantes • Os dados e operações em uma única entidade (objeto). • Benefícios: • Permite alterações sem afetar demais partes do sistema. • Modularidade - O código é independente de outros objetos • Níveis de acesso: As Informações podem ser Públicas ou Privadas, de acordo com a necessidade (Information Hiding). Encapsulamento
  27. 27. Encapsulamento
  28. 28. • Esconde a implementação interna da especificação externa • Clientes conhecem somente a interface • Clientes dependem da interface e não da implementação Encapsulamento parar() pausar() avancar() voltar() alterarHora() tocar() carregarDisco()
  29. 29. • Mecanismo para organizar elementos em grupos • Essencial para estruturar sistemas complexos Encapsulamento - Pacotes Utilitários Cadastros Básicos Contabilização
  30. 30. Encapsulamento - Visibilidade • Com o encapsulamento um objeto determina a permissão que outros objetos terão para acessar seus membros(atributos e métodos) • Alguns graus de visibilidade: • Pública: acessível a todo o sistema • Privada: acessível somente dentro da classe • Protegida: acessível dentro da classe e suas especializações (herança) • Pacote: acessível às classes de um mesmo pacote
  31. 31. visibilidade pública Encapsulamento - Visibilidade
  32. 32. visibilidade privada Encapsulamento - Visibilidade
  33. 33. visibilidade protegida Encapsulamento - Visibilidade
  34. 34. visibilidade de pacote Encapsulamento - Visibilidade
  35. 35. Classe A e Bmetodo2 Classe B e Dmetodo1 Classe Batributo2 Todas as classesatributo1 AcessoMembros Encapsulamento - Visibilidade
  36. 36. Porque programar OO? • Permite alta reutilização de código; • Reduz tempo de manutenção de código; • Reduz complexidade através da melhoria do grau de abstração do sistema; • Aumenta qualidade e produtividade oferece maiores facilidades ao desenvolvedor; • Adoção (aceitação) comercial crescente.
  37. 37. Armadilhas • Pensar no paradigma OO simplesmente como uma linguagem; • Programar sem planejar; • Pensar na OO como uma solução para tudo; • Programação Egoísta: • É preciso documentar!
  38. 38. Referências http://webx.sefaz.al.gov.br/posEngSoft/documentos/moo/2-OO.ppt http://www.joinville.udesc.br/portal/professores/parra/materiais/introducao_OO_2.ppt http://www.datainfo.inf.br/marcio/download/aoo/aoo.ppt http://www.ic.uff.br/~anselmo
  39. 39. apresentacao.close()

×