PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou...

Post on 17-Apr-2015

105 views 0 download

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.