Upload
leonardo-soares
View
409
Download
3
Embed Size (px)
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!