Orientação a objetos php

Preview:

Citation preview

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: