| <<< Voltar |
13. Orientação a objetos
Objetos
Poliformismo
Herança
Criando Classes
Construtores
Criando Objetos
Manipulando os atributos
Executando operações
Implementando herança
Objetos
Objetos são quaisquer itens manipulados pelo programa. Páginas, arquivos, formulários, itens de formulários como botões, combos, caixas de texto, etc. tudo isso pode ser considerado objeto. Os objetos possuem atributos que são propriedades ou variáveis que referem-se aos objetos e os modificam. Eles também possuem operações que são métodos, ações ou funções que o objeto pode realizar seja para modificar-se, seja para executar alguma ação externa ou até mesmo para executar alguma ação em outro objeto.
Os objetos podem ser grupados em classes. Uma classe possui objetos que tem os mesmos atributos e operações. Assim eles se comportam de maneira semelhante. O que pode variar é o valor destes atributos e operações.
Poliformismo
Isto significa que classes com a mesma estrutura podem ter comportamentos diferentes para a mesma operação.
Herança
A herança permite a criação de subclasses que herdam atributos e operações da classe pai.
Criando Classes
A sintaxe para a criação de uma classe é:
class NOME
{
var $ATRIBUTO1;
var $ATRIBUTO2;
.......
var $ATRIBUTOn;
function OPERAÇÃO1();
{
COMANDOS1;
}
function OPERAÇÃO2 ($PARAMETRO1, $PARAMETRO2)
{
COMANDOS2;
}
}
onde:
- NOME é o nome da classe
- $ATRIBUTO.. são os atributos da classe
- OPERAÇÃO.. são as operações da classe
Em PHP todos os atributos e operações de classe são públicos.
Construtores
Construtor é um tipo de operação especial utilizada quando o objeto é realiza tarefas úteis na inicialização, tipo configurar atributos ou criar outros objetos necessários. O construtor é declarado da mesma maneira que qualquer outra operação, porém ele deve ter o mesmo nome da classe.
class NOME
{
function NOME() // construtor
{
......
}
}
O construtor é chamado toda vez que criamos um objeto.
Criando Objetos
Para criar um objeto, ação também conhecida como instanciar uma classe ou criar uma instancia, usa-se a sintaxe:
$NOME = new CLASSE($PARAMETRO);
Exemplo:
class teste
{
function teste($string)
{
echo "Testando a classe teste.<br>";
echo "String passada como argumento: $string <br>";
}
}
$objeto1 = new teste('primeiro');
$objeto2 = new teste('segundo');
Manipulando os atributos
Dentro da classe existe uma variável especial chamada $this que é usada para manipular os atributos. Você refere-se a um atributo com a sintaxe:
$this->ATRIBUTO
Exemplo:
class NOME
{
var $ATRIBUTO;
function OPERAÇÃO($PARÂMETRO)
{
$this->ATRIBUTO = $PARÂMETRO;
echo $this->ATRIBUTO;
}
}
Como os atributos e operações são públicos em PHP, podemos também fazer algo como:
class CLASSE
{
var $ATRIBUTO;
}
$OBJETO = new CLASSE();
$OBJETO->ATRIBUTO = 'VALOR';
echo $OBJETO->ATRIBUTO;
Porém, acessar atributos de fora da classe não é interessante. Melhor seria usar o encapsulamento. Embora isto não possa ser feito em PHP, você pode criar funções para manipular os atributos:
class CLASSE
{
var $ATRIBUTO;
function pega_atributo()
{
return $this->ATRIBUTO;
}
function configura_atributo($NOVO_VALOR)
{
$this->ATRIBUTO = $NOVO_VALOR);
}
}
Esta abordagem tem a grande vantagem de que, caso seja necessário processar ou formatar o valor do atributo para qualquer operação como por exemplo armazenar num banco de dados, isto só será feito uma vez e não em cada ocorrência do atributo em toda a aplicação. Assim reduzimos o risco de erro e o tempo de trabalho.
Executando operações
Podemos executar operações de uma classe de modo semelhante a manipulação de atributos:
class CLASSE
{
function OP1()
{
.....
}
function OP2($PARAM1, $PARAM2)
{
.....
}
}
$OBJETO = new CLASS();
$OBJETO->OP1(); // executa a operação OP1
$OBJETO->OP2(papiro,10); // executa a operação OP2
$VAR1 = $OBJETO->OP1(); // executa OP1 e coloca o resultado em $VAR1
Implementando herança
Para criar uma classe descendente de outra use a sintaxe:
class FILHO extends PAI
{
....
}
A classe filha herda todos os atributos e operações do pai. Assim, ao usar um objeto da classe filha, podemos nos referir a atributos e operações que foram definidos somente na classe pai. A recíproca não é verdadeira, ou seja, não podemos nos referir num objeto da classe pai a um atributo ou operação criado na classe filha.
Também podemos, na classe filha, modificar o valor de um atributo ou operação definido na classe pai. Se fizermos isto o atributo ou operação referente terá valores diferentes nos objetos criados a partir da classe pai e da classe filha.
PHP não suporta herança múltipla, ou seja, em PHP um pai pode ter muitos filhos, mas o filho só pode ter um pai.
| <<< Voltar |