Tópicos avançados em
internet A
Carlos Oberdan Rolim
Ciência da Computação
Sistemas de Informação
PHP
Orientação a objetos
Créditos: baseado no material da Profa Beatriz Wilges – SENAC SC
Sumário
Definindo uma classe;
Como criar uma classe;
As palavras-chave private e protected;
Métodos abstratos e interfaces;
A palavra-chave final;
Construtores e destrutores;
Variáveis e métodos estáticos.
Recordando uma função
Agrupamento de código
Representa uma ação
Escopo “local”
function my_func($arg1,$arg2) {
<< function statements >>
}
O que representa uma classe ?
Conceitualmente representa um objeto com
seus métodos e atributos
Definindo uma classe
Como criar uma classe
A sintaxe é a seguinte:
Class nome_classe
{
public var $nome
<atributos>
public function foo(){ ... }
<metodos>
}
Definindo uma classe
 Uma classe pode conter várias variáveis e
funções.
 Para criar variáveis dentro de uma classe,
usamos a instrução var.
 Podemos utilizar $this para referenciar um
Uma classe pode conter várias funções e variáveis.
objeto.
 Para criar um objeto de uma determinada
classe utilizamos a instrução new.
 Para acessar os atributos e metodos dentro de
uma classe devemos utilizar o símbolo ->
 Usar somente um $
$cao->nome e não $cao->$nome
<?php
Class dog
public
public
echo
}
}
?>
Usando uma classe
{
var $nome;
function latir(){
“au au “;
<?php
require(‘dog.class.php’);
$cao = new dog();
$cao->name = ‘Toto’;
echo “{$cao->nome} diz ”;
$puppy->latir();
?>
Programação orientada a objetos no PHP 5
Ocorreu o amadurecimento da linguagem no
que diz respeito à programação orientada a
objetos.
A partir dessa versão o PHP passa a operar
com o Zend Engine 2.0, utilizando um novo
modelo de objetos.
Esse modelo gerou significativos ganhos em
termos de velocidade e performance, porque ele
é mais otimizado e realiza muito menos cópias
redundantes de dados.
As palavras-chave private e protected
 Com essas palavras podemos criar métodos ou
variáveis privadas ou protegidas em uma classe.
Uma variável privada só poderá ser acessada
pela própria classe onde ela foi declarada.
Já a variável protegida poderá ser acessada
também pelas subclasses da classe onde ela foi
declarada.
Métodos abstratos e interfaces
 É possível criar métodos abstratos. Isto significa
que o método é apenas declarado, mas sua
implementação não é fornecida. Isto será feito
posteriormente em outra classe.
 No PHP 5 também temos a possibilidade de criar
interfaces. Nelas, inserimos apenas as declarações
dos métodos que farão parte da classe que irá
implementá-la.
 A diferença entre os métodos abstratos e
interfaces é que uma classe pode implementar
diversas interfaces.
 Utilizamos a palavra implements para indicar que
uma classe implementa uma determinada interface.
Métodos abstratos
<?php
abstract class ClasseAbstrata {
abstract public function teste( );
}
class ClasseImplementacao extends ClasseAbstrata{
public function teste( ){
echo “Método teste( ) chamado!<br>”;
}
}
$obj = new ClasseImplementacao;
$obj->teste( );
?>
Interfaces
<?php
interface MinhaInterface{
public function Teste();
}
class MinhaClasse implements MinhaInterface{
public function Teste( ){
//...
}
}
?>
A palavra-chave final
 Os métodos que forem declarados com a palavra
final não poderão ser sobrescritos pelas
subclasses. Exemplo:
<?php
class MinhaClasse{
final function Teste( ) {
// …
}
}
?>
 Se fosse declarado um método com o nome Teste
em uma subclasse de MinhaClasse, ele não iria
sobrescrever o método declarado como final.
A palavra-chave final
 Também é possível declarar uma classe como
final. Exemplo:
<?php
final class MinhaClasse{
//
}
?>
Isso significa que ela não poderá ter subclasses.
Construtores
 Um construtor consiste em um método que
será chamado toda vez que for criado um objeto
da classe onde ele for declarado.
 Pode ser utilizado para inicializar um objeto
antes dele ser usado.
 Ele deve ser criado com o nome _construct( ).
Construtores
<?php
class Classe {
function _construtor ( ) {
print “Esse é o construtor da Classe<br>;
}
}
class SubClasse extends Classe {
function _construct ( ) {
parent::_construct( );
print “Esse é o construtor da SubClasse<br>;
}
$obj = new Classe( );
$obj = new Subclasse( );
?>
Destrutor
 O destrutor é nomeado como _destruct( ).
 É um método que será chamado após a última
referência feita a um objeto no programa, antes
da liberação da memória.
 Pode ser útil para fins de depuração,
fechamento de conexão com banco de dados,
entre outras tarefas.
Destrutor
<?php
class MinhaClasse [
function _construct ( ) {
$this->nome = “MinhaClasse”;
print “Este é o contrutor da classe“ . $this->nome .
“<br>”;
}
function _destruct ( ) {
print “Este é o destrutor da classe” . $this->nome .
“<br>”;
}
}
$obj = new MinhaClasse ( );
?>
Variáveis e métodos estáticos
 As variáveis estáticas podem ser inicializadas.
 No PHP 5 a palavra static pode ser utilizada
para definir um método como estático. Com isso,
é possível chamá-lo mesmo sem a criação de
um objeto para a classe onde ele foi declarado.
Variáveis e métodos estáticos
<?php
class Classe {
static $variavel_estatica = 10;
}
print Classe::$variavel_estatica;
?>
Variáveis e métodos estáticos
<?php
class Classe {
public static function MetodoEstatico ( ) {
// …
}
}
Classe::MetodoEstatico( );
?>
Download

Definindo uma classe