PHP: Iniciando no em Classes e objetos

0

Posted on : 15-05-2011 | By : Paulo H Oliveira | In : PHP

Uma classe é um conjunto de variáveis e funções relacionadas a essas variáveis. Uma vantagem da utilização é poder usufruir do recurso de encapsulamento de informação. Com o encapsulamento o usuário de uma classe não precisa saber como ela é implementada, bastando para a utilização conhecer a interface, ou seja, as funções disponíveis. Uma classe é um tipo, e portanto não pode ser atribuída a uma variável. Para definir uma classe, deve-se utilizar a seguinte sintaxe:

<?
class Nome_da_classe {
var $variavel1;
var $variavel2;
 
function funcao1 ($parametro) {
   /* === corpo da função === */
}
 
}
?>

Objeto

Como foi dito anteriormente, classes são tipos, e não podem ser atribuídas a variáveis. Variáveis do tipo new , seguindo o exemplo abaixo:

$variavel = new $nome_da_classe;

Para utilizar as funções definidas na classe, deve ser utilizado o operador ->, como no exemplo:

$variavel-&gt;funcao1();

Na definição de uma classe, pode-se utilizar a variável $this, que é o próprio objeto. Assim, quando essa uma classe é instanciada em um objeto, e uma função desse objeto na definição da classe utiliza a variável $this significa o objeto que estamos utilizando.

Como exemplo da utilização de classes e objetos, podemos utilizar a classe conta, que define uma conta bancária bastante simples, com funções para ver saldo e fazer um crédito.

<?
 
class conta {
var $saldo;
function saldo() {
return $this-&gt;saldo;
}
 
function credito($valor) {
$this-&gt;saldo += $valor;
}
}
 
$minhaconta = new conta;
$minhaconta-&gt;saldo();// a variavel interna não foi
 
// inicializada, e não contém
 
// valor algum
 
$minhaconta-&gt;credito(50);
$minhaconta-&gt;saldo(); // retorna 50
 
?>

SubClasses

Uma classe pode ser uma extensão de outra. Isso significa que ela herdará todas as variáveis e funções da outra classe, e ainda terá as que forem adicionadas pelo programador. Em PHPnão é permitido utilizar herança múltipla, ou seja, uma classe pode ser extensão de apenas uma outra.

Para criar uma classe extendida, ou derivada de outra, deve ser utilizada a palavra reservada “extends”, como pode ser visto no exemplo seguinte:

<?
 
class novaconta extends conta {
var $numero;
 
function numero() {
return $this-&gt;numero;
}
 
}
 
?>

A classe acima é derivada da classe conta, tendo as mesmas funções e variáveis, com a adição da variável $numero e a função numero().

Construtores

Um construtor é uma função definida na classe que é automaticamente chamada no momento em que a classe é instanciada (através do operador “new”). O construtor deve ter o mesmo nome que a classe a que pertence. Veja o exemplo:

<?
 
class conta {
var $saldo;
 
function conta () {
$this.saldo = 0;
}
 
function saldo() {
return $this-&gt;saldo;
}
 
function credito($valor) {
$this-&gt;saldo += $valor;
}
 
}
 
?>

Podemos perceber que a classe conta agora possui um construtor, que inicializa a variável $saldo com o valor 0. Um construtor pode conter argumentos, que são opcionais, o que torna esta ferramenta mais poderosa. No exemplo acima, o construtor da classe conta pode receber como argumento um valor, que seria o valor inicial da conta. Vale observar que para classes derivadas, o construtor da classe pai não é automaticamente herdado quando o construtor da classe derivada é chamado.

Um construtor pode conter argumentos, que são opcionais, o que torna esta ferramenta mais poderosa. No exemplo acima, o construtor da classe conta pode receber como argumento um valor, que seria o valor inicial da conta.

Vale observar que para classes derivadas, o construtor da classe pai não é automaticamente herdado quando o construtor da classe derivada é chamado.

Autor/fonte: Mauricio Vivas

Compartilhe :

  • Stumble upon
  • twitter

Escreva um comentário

Security Code: