Facilitador: Renan Gurgel
Facilitador: Renan Gurgel
Introduzida a partir do PHP3
Fortalecida com a versão do PHP4
Com o PHP5 fica mais robusta e com os principais conceitos da OO.
Base da OO
“O projeto da casa” (projeto do objeto)
Template de objeto Estrutura estática utilizada para descrever
objetos mediante atributos e métodos
Uma classe por arquivo
Padrões de nomeclatura:
Padrao_Zend_ou_Pear
PadraoCamelCase
“A casa em si”
Contém informações
Sua estrutura é dinâmica, ou seja seus atributos podem mudar de valor durante a execução do programa
Pode-se declarar diversos objetos de uma mesma classe
Através do operador NEW
Declarados na classe
Usado nos objetos
Propriedades dos objetos
No PHP 4 era assim...
No PHP 5 é assim:
Métodos mágicos
Inseridos a partir do PHP5
Sempre começam com _ _
14 no PHP 5.3
Os 2 principais são: __construct()
__destruct()
Todos os métodos mágicos em: http://www.php.net/manual/pt_BR/language.oop5.magic.php
Executado na instância do objeto
Não pode retornar nada
Pode sofrer sobrecarga
Pode receber argumentos
Acionado quando não existe mais referências para o objeto ou quando chega ao fim do script
Pode ser útil em:
Banco de dados
Logs
Variável especial $this Automaticamente definida
Referência ao próprio objeto
Acessando atributos
$this->nomeDoAtributo (ex: $this->cpf )
Acessando métodos
$this->nomeDoMetodo() (ex: $this->getCpf() )
Vamos trabalhar um pouco
né?
Testem...
$renan = new Pessoa();$renan->setNome('Renan');
echo $renan->getNome()."<br />";
A partir do PHP5
Public
Private
Protected
Esqueça o var
O encapsulamento é a chave da OO
Membros declarados assim só podem ser acessados dentro da classe em que foram declarados
Não pode ser acessado a partir de uma classe descendente
Não pode ser acessado a partir do programa que faz uso dessa classe
Membros declarados como protected podem ser acessados dentro da classe
Podem ser acessados em classes descendentes
Não pode ser acessado a partir do programa que faz uso dessa classe
Membros declarados como public podem ser acessados livremente na classe em que foram declarados
Podem ser acessados em classes descendentes
Pode ser acessado a partir do programa que faz uso dessa classe
Se nenhum desses for declarado o
public é definido por padrão
Para continuar o suporte ao encapsulamento
Usado para configurações de
Banco de dados e nomes de
usuários
Palavra chave const
Acesso :: (operador de resolução de escopo)
É um filho poder obter algumas características do pai
Há casos em que é necessário ter objetos idênticos com algumas funcionalidades a mais ou então com as mesmas funcionalidades, mas com comportamentos diferentes
Ambos são veículos!
Podemos dizer que eles pertencem a
classe veiculo
Para dizer que uma classe herda de outra usamos a palavra chave
EXTENDS
EX:
Polymorphos (Grego) – Múltiplas formas
Várias classes podem possuir a mesma estrutura, mas comportamento diferentes
Ao utilizar herança podemos não só aproveitar os métodos da classe pai, como também fazer com que algumas de suas características sejam alteradas
Desculpe, ainda não entendi...
Imagine que um banco possua 2
tipos de cheques
CHEQUE COMUM
CHEQUE ESPECIAL
X
Ambos possuem a mesma estrutura
O que diferencia um do outro é a forma de cobrança de juros
O cheque comum cobra 25%
ENTÃO...
No cheque especial os juros cobrados são de 10% e não 25%
Vamos aproveitar a mesma estrutura apenas redefinindo o método calculaJuros
Self refere-se a classe atual e é normalmente usado para acessar:
Métodos
Constantes
Parent:
Refere-se a classe pai
Normalmente usado para chamar o construtor ou métodos da classe pai
Vamos a um
exemplo
Usado para quando você não quer que a sua classe/método possa se estender mais
Basta utilizar a palavra chave final
Exemplos: