phpoo erick souza. conceitos de orientação a objetos objeto é um conceito ou item(concreto ou...
TRANSCRIPT
![Page 1: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/1.jpg)
PHPOOPHPOO
Erick SouzaErick Souza
![Page 2: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/2.jpg)
Conceitos de Orientação Conceitos de Orientação a Objetosa Objetos
• Objeto é um conceito ou item(concreto ou abstrato).• Software orientado a objetos• Uma classe é uma “fábrica” de objetos.• Um objeto é uma instância de uma classe• Objetos se comunicam por troca de mensagens.
![Page 3: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/3.jpg)
• Herança: permite que uma classe incorpore elementos de outra classe.• Encapsulamento: permite utilizar objetos sem a necessidade de entender os detalhes de implementação.• Polimorfismo: é a capacidade de oferecer diferentes comportamentos para a mesma entidade
![Page 4: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/4.jpg)
Criando classes, Criando classes, atributos e operações em atributos e operações em
PHPPHP• Estrutura de Classes
![Page 5: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/5.jpg)
• Construtor: método invocado na criação do objeto• Destrutor : método chamado na destruição do objeto.
![Page 6: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/6.jpg)
Instanciando ClassesInstanciando Classes
![Page 7: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/7.jpg)
Usando atributos de classe
• O ponteiro ‘this’.
![Page 8: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/8.jpg)
• Acesso a atributos fora da classe.
![Page 9: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/9.jpg)
• Os métodos __get() e __set().
![Page 10: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/10.jpg)
Controlando acesso
• ‘public’ : o elemento pode ser acessado dentro e fora da classe.• ‘private’ : o elemento só pode ser acessado dentro da própria classe.• ‘protected’ : o elemento só pode ser acessado dentro da própria classe ou de classes derivadas(herança)
![Page 11: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/11.jpg)
• Por default, atributos e métodos são ‘public’.
![Page 12: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/12.jpg)
Chamada de métodos
![Page 13: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/13.jpg)
Implementando Herança
![Page 14: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/14.jpg)
Certo
Errado
![Page 15: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/15.jpg)
• Onde está o erro?
![Page 16: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/16.jpg)
• Overriding: é uma aplicação da herança que permite redefinir valores de atributos e implementações de métodos nas classes filhas, sem alterar a classe pai.
![Page 17: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/17.jpg)
![Page 18: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/18.jpg)
• Herança e Overriding podem ser proibidas com o uso de ‘final’
![Page 19: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/19.jpg)
• Herança múltipla(quando há mais de um pai para um filho) não é permitida em PHP.
![Page 20: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/20.jpg)
Aspectos avançados
• PHP4 X PHP5: No PHP4 os objetos eram passados por valor. No PHP5 são passados por referência.• Constantes “Per-Class”: podem ser acessadas fora da classe, através do operador ::
![Page 21: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/21.jpg)
• Métodos estáticos: A palavra-chave ‘static’ permite o acesso a métodos sem precisar instanciar a classe.
![Page 22: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/22.jpg)
• Verificação de tipos: A palavra-chave ‘instanceof’ permite verificar se um objeto é uma instância de determinada classe.
![Page 23: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/23.jpg)
• Clonagem de Objetos: A palavra-chave ‘clone’ cria uma cópia de um objeto da mesma classe, com os mesmos valores de atributos.
Obs: é possivel definir o método especial __clone() na classe base, que funciona como um construtor no momento que o objeto é clonado.
![Page 24: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/24.jpg)
• Classes abstratas: A palavra-chave ‘abstract’ define uma classe abstrata. Uma classe abstrata não pode ser instanciada. Os métodos abstratos não são implementados na classe abstrata.
Obs: Classes com métodos abstratos devem ser abstratas.
![Page 25: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/25.jpg)
• Sobrecarga de métodos: o método especial __call() é usado para sobrecarregar métodos.
![Page 26: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/26.jpg)
• Convertento classes para String
__toString: retorna tudo o que deve ser escrito para echo.var_export: escreve o conteúdo dos atributos
![Page 27: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/27.jpg)
• Usando Reflection API: é uma forma de obter dados da estrutura de classes, objetos, páginas, etc.
![Page 28: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/28.jpg)
![Page 29: PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma](https://reader035.vdocuments.net/reader035/viewer/2022070310/552fc0fe497959413d8bb85b/html5/thumbnails/29.jpg)
Dúvidas?Dúvidas?
Bibliografia:Bibliografia: PHP and MySQL Web Development, PHP and MySQL Web Development,
third edition.third edition.