Orientação a objetos com PHP

Preview:

DESCRIPTION

Aula sobre o uso de orientação a objetos em PHP. Utilizada no curso de extensão em desenvolvimento em Nuvem com PHP do curso técnico em informática do IFPE - Campus Garanhuns.

Citation preview

Orientação a objetos com PHPProf. Leonardo Soares

Campus Garanhuns

Orientação a objetos é um paradigma computacional quepropõe uma metodologia para construção de software

A base deste paradigma está em associar o domínio do problema do software à objetos que se relacionam, similar a nossa realide

PHP desde a versão 5 oferece suporte completo a orientação a objetos

Softwares orientado a objetos

Classes e objetos

Métodos, controle de visibilidade

Herança, interfaces, classes e métodos abstratos

Ponteiro this

Dentre outros recursos específicos do PHP

Suporte do PHP a O.O.

Classes são a base para orientação a objetos, elas representamalgum domínio do problema de nosso software

Assim como no Java e em outras linguagens a declaração de umaclasse começa pela palavra class

Em geral criamos um arquivo .php para cade classe

Declaração de classes

Vamos transformar em orientado a objetos nossosistema de cadastro de cursos

Declarem uma classe para representar um curso da escola

Exercício

São um tipo especial de “métodos” que são invocados quandoum objeto é instanciado ou deletado

Os utilizamos para iniciar recursos e atributos (construtor) e liberar recursos quando não mais necessários (destrutor)

Para construtores utilizamos a sintaxe __construct e __destruct

Antes do PHP5 havia a possibilidade de utilizar construtores com o mesmo nome da classe, porém isto está deprecated

Construtores e destrutores

Implementem o construtor para a nossa classe Curso

Exercício

Atributos são usados para definir a estrutura de uma classe

Valores para estes atributos definem estados para um objeto

Estes atributos podem ser inicializados com um valor pré-definido

Caso observem a declaração de variáveis precedida pela palavravar, não se assustem equivale a declaração public e está emdesuso

O construtor da classe também pode ser usado para inicializaros valores destes atributos

Atributos de classes

Adicionem os atributos/propriedades nome e cargahorária à nossa classe Curso

Exercício

Quando precisamos acessar atributos ou métodos de nossasclasses, o fazemos através de uma “pseudo-variável” denominada $this

Para quem vem de Java ou C++, já ouviu falar do ponteiro this

Seu uso em PHP é obrigatório!

Ponteiro $this

Métodos são ações ou operações que uma classe poderealizar

Sua declaração é similar aos das funções que já vimos, excetopela possibilidade de utilizar controles de visibilidade

Declaração de métodos

Implementem os métodos gets e setters para a nossaclasse

Exercício

Herança permite que relações de similaridade que existe em nossocotidiano posssam ser representadas na orientação a objetos

PHP permite o uso de heranças de maneira similar ao Java, ondedeclaramos uma classe pai, em seguida a classe filha e utilizamos o operador extends para fazer a herança entre elas

O acesso a métodos da classe pai é feito através da palavrareservada parent::

Herança

Como dito anteriormente, em geral, criamos um arquivo .phppara cada classe. Qual o problema com isto?

PHP oferece uma forma de evitar a necessidade de múltiplosincludes em uma página, e o chama de Autoloading de classes

O autoloading é realizado através de uma função denominada__autoload(nome_classe)

Autoloading de classes

Problema!!!

O acesso a determinadas propriedades e métodos é feito de forma diferente dependendo de como eles tenham sido declarados

Para acesso a métodos declarados em classes pai vimos queutilizamos o operador parent::

Para o acesso a atributos constantes utilizamos a sintaxeClasse::atributo

Para o acesso a atributos estáticos utilizamso o operador self:: sucedido do nome da variável com $

Operador de resolução de escopo ::

Classes abstratas não podem ser instanciadas e métodosabstratos não possuem implementação

O uso de classes abstratas possibilita um “contrato” entre essasclasses e as classes que irão estendê-las

A declaração de classes abstratas e métodos abstratos é feitaatravés da palavra reservada abstract

Classes abstratas

Também são usadas como forma de estabelecer um contrato

Diferem de classes abstratas por alguns aspectos:Não podem implementar métodos

Não possuem atritubos

Possibilitam uma “alternativa” a impossibilidade de herança multipla

Para utilizá-las é usado a palavra reservadaimplements

Interfaces

Muito obrigado!

Recommended