Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução à Programação Orientada a Objetos

Introdução à Programação Orientada a Objetos

Esta palestra foi apresentada no evento GTalk One - (Iniciantes) Programação Orientada a Objeto e Tecnologia como ferramenta.
https://www.youtube.com/watch?v=WF--FxJLsB0

Vinicius Dias

July 25, 2020
Tweet

More Decks by Vinicius Dias

Other Decks in Technology

Transcript

  1. Quem é Vinicius Dias? • Zend Certified (PHP) Engineer; •

    iMasters Certified PHP Professional; • Um dos administradores do PHP Rio; • Desenvolvedor Full Stack na TemboSocial; • Instrutor na Alura Cursos Online; • LinkedIn: https://linkedin.com/in/vinícius-dias/ • GitHub: https://github.com/CViniciusSDias • Twitter: @cviniciussdias • Dev.to: https://dev.to/cviniciussdias/ • YouTube: Programando com Vinicius Dias
  2. Dê feedback Os palestrantes gostam de saber como melhorar suas

    apresentações Nenhuma apresentação é perfeita e nós que criamos conteúdo sabemos disso. Nossa intenção é passar conteúdo da melhor forma possível e sua opinião é muito importante para isso.
  3. Definição formal Programação orientada a objetos (POO, ou OOP segundo

    as suas siglas em inglês) é um paradigma de programação baseado no conceito de "objetos", que podem conter dados na forma de campos, também conhecidos como atributos, e códigos, na forma de procedimentos, também conhecidos como métodos.
  4. Mais problemas da Programação Procedural • Reutilização do código de

    definição dos dados • Organização do código (valores e comportamentos juntos) • Representação mais natural de um tipo complexo (como uma Conta)
  5. Mais problemas da Programação Procedural • Reutilização do código de

    definição dos dados • Organização do código (valores e comportamentos juntos) • Representação mais natural de um tipo complexo (como uma Conta)
  6. Linguagens com suporte a OO • PHP • Java •

    C# • Python • Praticamente todas as famosinhas
  7. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); objeto Conta String cpfTitular = “” double saldo = 0
  8. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); objeto Conta String cpfTitular = “” double saldo = 0
  9. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” objeto Conta String cpfTitular = “” double saldo = 0
  10. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” objeto Conta String cpfTitular = “123.456.789-10” double saldo = 0
  11. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 objeto Conta String cpfTitular = “123.456.789-10” double saldo = 0
  12. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500
  13. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 Conta segundaConta = new Conta(); objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500 objeto Conta String cpfTitular = “” double saldo = 0
  14. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 Conta segundaConta = umaConta; objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500
  15. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 Conta segundaConta = umaConta; objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500
  16. Mais problemas da Programação Procedural • Reutilização do código de

    definição dos dados • Organização do código (valores e comportamentos juntos) • Representação mais natural de um tipo complexo (como uma Conta)
  17. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500 + sacar(double valor) + depositar(double valor) Métodos
  18. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 umaConta.sacar(123.45) objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500 + sacar(double valor) + depositar(double valor)
  19. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 umaConta.sacar(123.45) objeto Conta String cpfTitular = “123.456.789-10” double saldo = 500 + sacar(double valor) + depositar(double valor) this
  20. - String cpfTitular - double saldo Conta Execução do programa

    Memória Conta umaConta = new Conta(); umaConta.cpfTitular=“123.456.789-10” umaConta.saldo = 500 umaConta.sacar(123.45) objeto Conta String cpfTitular = “123.456.789-10” double saldo = 376.55 + sacar(double valor) + depositar(double valor)
  21. Mais problemas da Programação Procedural • Reutilização do código de

    definição dos dados • Organização do código (valores e comportamentos juntos) • Representação mais natural de um tipo complexo (como uma Conta)
  22. Implementar o método “transfere” 1. Baixe o código até esse

    ponto em https://github.com/CViniciusSDias/poo-gdg 2. Crie um método transfere que a. Receba uma conta de destino e um valor a transferir b. Chame o método sacar na conta de origem c. Chame o método depositar na conta de destino