Olá pessoal,
Como vão? Espero que estejam todos bem, hoje o assunto é Classes, vamos iniciar no mundo da POO – Programação Orientada a Objetos, mas vamos fazer isso de uma forma bem dinâmica e divertida, pois eu acho o assunto um pouco chato para quem começou apredendo a programar da forma “errada”, digo usando POG – Programação Orientada a Gambiarras, como eu.
A definição formal de Classe pode ser visto no link mostrados acima por isso vou falar de uma forma informal.
Uma classe é um modelo que deve ser seguido por um objeto, por exemplo, um médico pedriatra João segue a conduta da medicina pediátrica não é? Pois nesse caso, a classe é a medicina pediátrica e o médico é um objeto da medicina pediátrica, deu pra entender? Vamos a outro exemplo, meu cachorro Snoop faz o que geralmente um cachorro da raça dele, Pit-Bull faz, então Snoop é um objeto da classe Pit-Bull.
As classes devem se agrupar por funcionalidades e caraterísticas em pacotes, por exemplo, você tem várias classes que lidam com imagens: classe gif, classe jpeg, classe bmp, como elas tem característas comuns então podem se agrupar no pacote imagem. Seguindo nosso exemplo temos: O médico pediátra João, é objeto da classe medicina pedriática que percente ao pacote medicina. o Pit-Bull Snoop é um objeto da classe Pit-Bull que pertence ao pacote de Cães, concorda? pois seguimos.
Em linguagems como Java, existem recursos nativos para tratar de pacotes, no PHP ainda não, mas é importante agrupar suas classe em pastas para mantar a organização e para que você lembre no futuro onde está aquela classe na hora do aperto.
Os objetos das classes são instancias da classe, quando você instancia uma classe voce cria um “ser” com as características da classe, mas com particularidades cada “ser” tem.
As classes são compostas basicamente de atributos e métodos, os atributos são as informações que a classe carrega, diríamos características. Já os métodos são ações que o objeto pode fazer, dar valor a seus atributos, exibir os atributos, realizar calculos, e assim por diante.
Para continuar vamos voltar a nossa classe PitBull. Vamos dar alguns atributos e métodos a ela. Então temos:
- Atributos
- Nome
- Data de Nascimento
- Cor Principal
- Tamanho do Pelo
- Nome do Dono
- Métodos
- setNome – Define o nome do cão.
- setNascimento – Define a data de nascimento do cão.
- setCor – Define a cor principal do cão.
- setPelo – Define o tamanho do pelo.
- setNomeDono – Define o nome do dono do cão.
Traduzindo para PHP
@Date: 04/06/2007
*/class PitBull {
# Atributos da Classe #
$nome;
$data_nascimento;
$cor;
$tamanho_pelo;
$nome_dono;# Método Construtor
function PitBull(){
}# Método Construtor – PHP 5
function __construct(){
}# Método Destrutor – PHP 5
function __desctruct(){
}# setNome – Define o nome do Cao
function setNome($data){
$this->nome = $data;
}# setNascimento – Define a data de nascimento do Cao
function setNascimento($data){
$this->data_nascimento = $data;
}# setCor – Define a cor do Cao
function setCor($data){
$this->cor = $data;
}# setPelo – Define o tamanho do pelo do Cao
function setPelo($data){
$this->pelo = $data;
}# setDono – Define o nome do dono do Cao
function setDono($data){
$this->dono = $data;
}} # End Class
]?>
O PHP, apartir de suas novas versão 4 traz o recurso de herança. Assim você pode costumizar uma classe ja existente sem estragar a original, estou bricando apesar de servir para isso também, mas a principal função é o reaproveitamento do código, evitar gastar tempo numa coisa que já existe. Digamos que você tem um cão também, mas o seu faz coisas mais apromoradas como falar, escrever blogs, mandar emails etc. Você pode criar a classe PitBullInteligente e herdar as carateristicas da classe PitBull e modifica-la a vontade.
Seguindo o exemplo mencionado acima temos
/*
@Date: 26/10/2007
*/
class PitBullInteligente extends PitBull {
/*
Essa classe herda características da Classe PitBull.
*/
# Atributos da Classe #
$sobrenome;
$idade;
# setSobrenome – Define o sobrenome do Cao
function setSobrenome($data){
$this->sobrenome = $data;
}
# getNomeCompleto – Retorna o Nome Completo do Cão
function setSobrenome($data){
return $this->nome.’ ‘.$this->sobrenome;
}
# setNascimento – Define a data de nascimento do Cao
function setNascimento($data){
$this->data_nascimento = $data;
}
# getNascimento – Retorna a Data de Nascimento
function setNascimento($data){
$this->data_nascimento = $data;
}
} # End Class
]?>
Continua…