Orientação a objetos php

51
Facilitador: Renan Gurgel

Transcript of Orientação a objetos php

Page 1: Orientação a objetos   php

Facilitador: Renan Gurgel

Page 2: Orientação a objetos   php

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.

Page 3: Orientação a objetos   php

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

Page 4: Orientação a objetos   php
Page 5: Orientação a objetos   php
Page 6: Orientação a objetos   php
Page 7: Orientação a objetos   php

Uma classe por arquivo

Padrões de nomeclatura:

Padrao_Zend_ou_Pear

PadraoCamelCase

Page 8: Orientação a objetos   php

“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

Page 9: Orientação a objetos   php
Page 10: Orientação a objetos   php

Através do operador NEW

Page 11: Orientação a objetos   php

Declarados na classe

Usado nos objetos

Propriedades dos objetos

Page 12: Orientação a objetos   php

No PHP 4 era assim...

Page 13: Orientação a objetos   php

No PHP 5 é assim:

Page 14: Orientação a objetos   php

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

Page 15: Orientação a objetos   php

Executado na instância do objeto

Não pode retornar nada

Pode sofrer sobrecarga

Pode receber argumentos

Page 16: Orientação a objetos   php

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

Page 17: Orientação a objetos   php

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() )

Page 18: Orientação a objetos   php

Vamos trabalhar um pouco

né?

Page 19: Orientação a objetos   php

Testem...

$renan = new Pessoa();$renan->setNome('Renan');

echo $renan->getNome()."<br />";

Page 20: Orientação a objetos   php

A partir do PHP5

Public

Private

Protected

Page 21: Orientação a objetos   php

Esqueça o var

O encapsulamento é a chave da OO

Page 22: Orientação a objetos   php

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

Page 23: Orientação a objetos   php

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

Page 24: Orientação a objetos   php

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

Page 25: Orientação a objetos   php

Se nenhum desses for declarado o

public é definido por padrão

Page 26: Orientação a objetos   php

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)

Page 27: Orientação a objetos   php

É 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

Page 28: Orientação a objetos   php
Page 29: Orientação a objetos   php

Ambos são veículos!

Page 30: Orientação a objetos   php

Podemos dizer que eles pertencem a

classe veiculo

Page 31: Orientação a objetos   php

Para dizer que uma classe herda de outra usamos a palavra chave

EXTENDS

Page 32: Orientação a objetos   php

EX:

Page 33: Orientação a objetos   php
Page 34: Orientação a objetos   php

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

Page 35: Orientação a objetos   php

Desculpe, ainda não entendi...

Page 36: Orientação a objetos   php

Imagine que um banco possua 2

tipos de cheques

Page 37: Orientação a objetos   php

CHEQUE COMUM

CHEQUE ESPECIAL

X

Page 38: Orientação a objetos   php

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

Page 39: Orientação a objetos   php
Page 40: Orientação a objetos   php
Page 41: Orientação a objetos   php

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

Page 42: Orientação a objetos   php
Page 43: Orientação a objetos   php
Page 44: Orientação a objetos   php
Page 45: Orientação a objetos   php

Self refere-se a classe atual e é normalmente usado para acessar:

Métodos

Constantes

Page 46: Orientação a objetos   php

Parent:

Refere-se a classe pai

Normalmente usado para chamar o construtor ou métodos da classe pai

Page 47: Orientação a objetos   php

Vamos a um

exemplo

Page 48: Orientação a objetos   php
Page 49: Orientação a objetos   php

Usado para quando você não quer que a sua classe/método possa se estender mais

Basta utilizar a palavra chave final

Exemplos:

Page 50: Orientação a objetos   php
Page 51: Orientação a objetos   php