29
PHPOO PHPOO Erick Souza Erick Souza

PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma

Embed Size (px)

Citation preview

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

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

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

• 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

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

• 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

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

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

• 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

• 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

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

• 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

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

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

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

• 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

• 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
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

• 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

• 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

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

• 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

• 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

• 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

• 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

• 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

• 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

• 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
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

Dúvidas?Dúvidas?

Bibliografia:Bibliografia: PHP and MySQL Web Development, PHP and MySQL Web Development,

third edition.third edition.