Slide 1

Slide 1 text

www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 1 / 18 Programação Orientada a Objetos Professor Er Galvão Abbott Programação Orientada a Objetos como Linguagem de Implementação

Slide 2

Slide 2 text

Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP Diretor da PHP Conference Brasil Contribui para a tradução da documentação oficial Atua como Zend Framework Evangelist para o ZTeam, da Zend. Professor Especialista de Pós-Graduação 20+ anos desenvolvendo sistemas e aplicações com interface web 15+ destes com PHP 7+ com Zend Framework Palestrante em eventos nacionais e internacionais Instrutor de cursos presenciais e a distância Fundador e líder do GU PHPBR Fundador* e membro do GU PHPRS Site: http://www.galvao.eti.br/ http://people.php.net/galvao Twitter: @galvao Slides e Documentos: http://slideshare.net/ergalvao Github: http://github.com/galvao Posts: https://medium.com/@galvao Quem?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 2 / 18 www.galvao.eti.br Programação Orientada a Objetos

Slide 3

Slide 3 text

Conteúdo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 3 / 18 www.galvao.eti.br ● O Paradigma de Orientação a Objetos ● Vantagens e Desvantagens ● Generalização e conceitualização de Objetos ● Atributos e Ações ● Particularidades da Orientação a Objetos para desenvolvimento web ● Particularidades da linguagem PHP ● Classes e Objetos ● Atributos ● Métodos ● Herança ● Injeção de Dependências ● Namespaces ● Autoloading ● Abstração e Interfaces ● Traits ● Atributos e Métodos Estáticos ● Métodos Especiais ● Funções Auxiliares Programação Orientada a Objetos

Slide 4

Slide 4 text

O Paradigma da Orientação a Objetos CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 4 / 18 www.galvao.eti.br Programação Orientada a Objetos Sequencial → Funcional → Orientada a Objetos

Slide 5

Slide 5 text

Sequencial CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 5 / 18 www.galvao.eti.br Programação Orientada a Objetos

Slide 6

Slide 6 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 6 / 18 www.galvao.eti.br Programação Orientada a Objetos Alto índice de repetição de código Não há necessidade de conceitualização Inexistência de Generalização Inexistência de Abstração Inexistência de Persistência Difícil Organização Longo tempo de Manutenção Praticidade Simplicidade Curto tempo de criação Sequencial

Slide 7

Slide 7 text

Sequencial → Funcional CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 7 / 18 www.galvao.eti.br Programação Orientada a Objetos

Slide 8

Slide 8 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 8 / 18 www.galvao.eti.br Programação Orientada a Objetos fn ( x , y ) { } Funcional

Slide 9

Slide 9 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 9 / 18 www.galvao.eti.br Programação Orientada a Objetos fn ( x , y ) { } Funcional Médio índice de repetição de código Alguma conceitualização Alguma Generalização Inexistência de Abstração Inexistência de Persistência Razoável/Difícil Organização Médio tempo de Manutenção Razoável Praticidade Razoável Simplicidade Médio tempo de criação

Slide 10

Slide 10 text

Funcional → Orientada a Objetos CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 10 / 18 www.galvao.eti.br Programação Orientada a Objetos ● Identificação do Objeto ● Definição de Características (Atributos) ● Definição de Ações (Métodos) ● Conceitualização / Generalização ● Abstração

Slide 11

Slide 11 text

Orientada a Objetos CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 11 / 18 www.galvao.eti.br Programação Orientada a Objetos fn () { } class { } x , y fn () { } }

Slide 12

Slide 12 text

Orientada a Objetos CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 12 / 18 www.galvao.eti.br Programação Orientada a Objetos fn () { } class { } x , y fn () { } } Baixa Simplicidade Longo tempo de criação Baixo/Inexistente índice de repetição de código Alta conceitualização Alta Generalização Alta Abstração Persistência Alta Organização Médio/Curto Tempo de Manutenção

Slide 13

Slide 13 text

Orientação a Objetos e a Web CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 13 / 18 www.galvao.eti.br Programação Orientada a Objetos / log public css img js / class log public css img js

Slide 14

Slide 14 text

A Web CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 14 / 18 www.galvao.eti.br Programação Orientada a Objetos Requisição: index.php Processamento Resultado /public/index.php Browser Browser

Slide 15

Slide 15 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 15 / 18 www.galvao.eti.br Programação Orientada a Objetos Requisição: index.php Processamento Resultado /public/index.php Browser Browser Orientação a Objetos e a Web /class/classe.php

Slide 16

Slide 16 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 16 / 18 www.galvao.eti.br Programação Orientada a Objetos Orientação a Objetos e PHP ● Métodos Construtores possuem nomes especiais ● Herança Simples* ● Não há sobrecarga de métodos Diferenças mais notáveis para outras linguagens OO: ● Namespaces ● Traits ● Classes Anônimas** ● Serialização Características OO notáveis:

Slide 17

Slide 17 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 17 / 18 www.galvao.eti.br Programação Orientada a Objetos Classes são instruções de código-fonte responsáveis pela geração de Objetos. Cada Objeto gerado possui a mesma estrutura ditada pela Classe, ou seja, basicamente possui as mesmas Características (Atributos) e pode desempenhar as mesmas Ações (Métodos). Classes e Objetos

Slide 18

Slide 18 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 18 / 18 www.galvao.eti.br Programação Orientada a Objetos C O1 O2 O3 O4 x, y fn () x, y fn () x, y fn () x, y fn () Classes e Objetos