PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou...
Transcript of PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou...
PHPOOPHPOO
Erick SouzaErick Souza
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.
• 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
Criando classes, Criando classes, atributos e operações em atributos e operações em
PHPPHP• Estrutura de Classes
• Construtor: método invocado na criação do objeto• Destrutor : método chamado na destruição do objeto.
Instanciando ClassesInstanciando Classes
Usando atributos de classe
• O ponteiro ‘this’.
• Acesso a atributos fora da classe.
• Os métodos __get() e __set().
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)
• Por default, atributos e métodos são ‘public’.
Chamada de métodos
Implementando Herança
Certo
Errado
• Onde está o erro?
• 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.
• Herança e Overriding podem ser proibidas com o uso de ‘final’
• Herança múltipla(quando há mais de um pai para um filho) não é permitida em PHP.
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 ::
• Métodos estáticos: A palavra-chave ‘static’ permite o acesso a métodos sem precisar instanciar a classe.
• Verificação de tipos: A palavra-chave ‘instanceof’ permite verificar se um objeto é uma instância de determinada classe.
• 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.
• 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.
• Sobrecarga de métodos: o método especial __call() é usado para sobrecarregar métodos.
• Convertento classes para String
__toString: retorna tudo o que deve ser escrito para echo.var_export: escreve o conteúdo dos atributos
• Usando Reflection API: é uma forma de obter dados da estrutura de classes, objetos, páginas, etc.
Dúvidas?Dúvidas?
Bibliografia:Bibliografia: PHP and MySQL Web Development, PHP and MySQL Web Development,
third edition.third edition.