Orientação a Objetos (1)

Embed Size (px)

Citation preview

  • 1. 1 O universo orientado a objetos.

2. Software complexo Naturalmente, nem todos. Considere aqueles que so! 3. Como lidar com a complexidade?

  • Rotina a unidade
  • Muitas variveis, funes

Dividindo o problema em partes Estruturado Orientado a Objetos

  • Objeto unidade
  • Une dados e funes

4. Interpretao 5. Como voc frita um ovo? 6. Como voc frita um ovo? Se voc respondeu algo como ... 1. Pego o ovo 2. Quebro o ovo e o deposito em uma panela 3. Levo a panela com leo e o ovo ao fogo 4. Aguardo at que fique bom Ento voc frita ovos de forma algortmica, estruturada! H algum problema? 7. Fritar um ovo de formaorientada a objetos exige ... Domnio da tecnologia Orientao a Objetos 8. Abordagem a ser empregada: Orientada a Objetos Estruturada Voc ou sua empresa provavelmente usa ou j usou esta abordagem! Problemas que no so complexos no precisam ser decompostos em partes. No precisam de anlie e projeto estruturados ou orientados a objetos.Nosso foco 9. Objeto = dados + funes Um objeto no uma rotina! 10. Rotina em Visual Basic Public Function Volume() As Double Return x * y * z End Function Uma boa,20 melhor ainda,mas 300 demais! 11. Estruturada x Orientada a Objetos

  • nfase em processos
  • ngase em dados (mais estveis)

Public Sub Volume() As Double Volume = x * y * z End Sub Rotina Objeto Pense nos processos! Pense nas coisas e nosprocessos que as manipulam! 12. Abstrao crescente

  • Padres de bits
  • Macros
  • Assembly
  • Procedimentos
  • Tipos abstratos de dados
    • Objetos, objetos de negcio, ...
  • Orientao a objetos estende abstrao demtodos clssicos

13. Viso orientada a objetos (reunio) 14. Noes de classe e objeto Por simplicidade, consideremos apenas as cadeiras 15. Noes de classe e objeto

  • Indstria X Cadeiras CostaFlex Custo: R$190,00 Peso: 5,6 Kg Carga: 150 Kg
  • Software Classe Cadeira

16. Noes de classe e objeto 17. Noes de classe e objeto 18. Noes de classe e objeto 19. Do real para o orientado a objeto... c2 :Cadeira 20. Noes de classe e objeto Mundo do Software 21. Noes de classe e objeto 22. Noes de classe e objeto 23. Noes de classe e objeto 24. Noes de classe e objeto Modela (representa, retrata, facilita a manipulao) Mulher 25. Noes de classe e objeto 26. Noes de classe e objeto 27. Noes de classe e objeto 28. Noes de classe e objeto 29. Cada objeto possui seu prprio estado Custo cerca deR$70,00! Sabia? No sabia. Eu custo mais! R$300,00 30. Objetos compartilham comportamento 31. Mtodos (descrevem o comportamento)

  • ClasseImpressora
  • Mtodos
    • ligar/desligar
    • testar
    • imprimirArquivo
    • avancarPagina
    • recuparPagina
    • flushBuffer
    • ...

32. Objetos reais e em software Mundo real Mundo virtual Instncias da classe Impressora (objetos de software) Instncias de impressoras (objetos reais) Fronteira imaginria (existe nas nossas cabeas) 33. Funcionrios 34. Mtodos (descrevem o comportamento)

  • ClasseFuncionario
  • Mtodos
    • getSalario
    • getFerias
    • getTarefas
    • getLocacao

35. Funcionrios reais e em software Mundo real Mundo virtual Fronteira imaginria (existe nas nossas cabeas) 36. Mensagem 37. Mensagem (detalhes) Anlise: 3min55s de conversa com profissional de RH (via telefone) Projeto orientado a objetos: 2min Significado: 1.GerenciaCargoenvia mensagemsetDescricaoAtividadesparaCargo 2.GerenciaCargoaguarda retorno da mensagem. 3.GerenciaCargoprossegue sua execuo aps retorno. 38. Viso Orientada a Objetos

    • Objetos (instncias de classes)
    • Mtodos (servios oferecidos)
    • Mensagens (requisio de servios)

Conceitos bsicos 39. Aplicao orientada a objetos

  • Aplicao uma coleo de objetos que trocam mensagens entre eles

Cenrio de troca de mensagens entre vrios objetos Classe do objetoobjN 40. Aplicao OO em Java (exemplo) public class Base { public void fazAlgumaCoisa() { System.out.println(fiz!); } } public class BaseTeste { public static void main(String[] args) { Base b = new Base(); b.fazAlgumaCoisa();} } 41. Aplicao OO em VB.NET (exemplo) Public Class BasePublic Sub fazAlgumaCoisa() Console.WriteLine(fiz!) End Sub End Class Public Class BaseTestePublic Sub main()base As Base = New Base(); base.fazAlgumaCoisa();} } 42. Resumo

  • Objetos so instncias de classes
  • Objetos no mundo real so representados em software por instncias de classes
  • Classe inclui dados e comportamentos
  • Objetos possuem seus prprios dados
  • Objetos compartilham comportamento da classe
  • Comportamento descrito via mtodos
  • Chamar um mtodo enviar uma mensagem
  • Aplicao OO um conjunto de objetos que trocam mensagens entre eles

43. Apenas diverso...