PHP – Trabalhando com classes I

Olá pessoal!

Incluirei no site para download várias classes de muita utilidade que venho criando e coletando no decorrer dos projetos que executo. Por isso, nada mais justo que explicar o que é uma e como se usa uma classe. não é?

Bom, quando falamos em classes (em qualquer linguagem de programação) saímos da conhecida linguagem estruturada e passamos a trabalhar numa realidade mais robusta: a Programação Orientada a Objetos (POO ou OOP). A diferença principal entre essas formas de programar é que enquanto na programação ou linguagem estruturada o programa (e o programador) segue um “roteiro fixo” de ações uma após a outra, como neste exemplo:


$cor = 'vermelho';
if($cor == 'vermelho'){
echo 'A cor é vermelho';
}else{
echo 'A cor é azul';
}

Na linguagem orientada a objetos temos as classes, que são definições e funcionalidades a serem usadas a qualquer momento dentro da programação. Podemos “ir e voltar” a qualquer hora, desde que a(s) classes já estejam declaradas (veremos isso mais adiante). Veja o exemplo:


class carro(){

var $cor;
var $modelo;
var $ano;
var $fabricante;
var $qtd_portas;

function diz_a_cor(){
echo 'A cor é: '$this->cor;
}

}

Notou a diferença?

Aquela mesma variável $cor, agora é uma das características da classe carro. Podemos alterar a cor ou qualquer outra característica existente desta forma:


$carro = new carro(); // cria uma nova instancia da classe carro

$carro->cor = 'vermelho'; //define a cor (do carro) vermelho

$carro->diz_a_cor(); //executa uma funcionalidade desta classe.

//Resultado: "A cor é vermelho"

$carro->cor = 'Azul'; //"troca" a cor do carro (rsrs)

$carro->diz_a_cor(); //executa novamente a funcionalidade, que exibirá a nova cor

Resultado: "A cor é azul"

Não é simples?

Usando as classes

Uma classe é somente uma definição, se quisermos trabalhar com as classes devemos instanciar esta classe. Isto significa que iremos gerar um exemplar de uma classe, chamado objeto.

Por exemplo, temos a classe carro com seus atributos ($cor, $ano, ect) e apenas uma funcionalidade, um método (function diz_a_cor ). Com a classe em si não podemos fazer nada, mas podemos criar objetos a partir dessa classe. Cada objeto terá suas características próprias, como a cor ou o ano assim como cada objeto pode executar qualquer método (função) sem interferir, a princípio, nos métodos e propriedades do outro objeto. Vale lembrar que por padrão, um objeto existe somente enquanto você estiver na página onde ele foi instanciado. Isso significa que, a princípio, quando se vai para outra página ou simplimente atualiza a que você está, este objeto é descarregado da memória e instanciado novamente, “zerado” (veremos detalhes mais adiante).

Vamos ver como se gerariam dois carros, ou seja, como se instanciariam dois objetos da classe carro. Para isso, utilizamos o operador new.


$carro1 = new carro();
$carro2 = new carro();

Neste momento, os dois objetos são iguais pois possuem as características iniciais definidas dentro da classe carro. Vamos agora “modificar” os carros:


$carro1->cor = 'Vermelho';
$carro2->cor = 'Azul';

Agora temos dois objetos com as mesmas funcionalidades, e com características diferente.

É importante dar conta da diferença entre um objeto e uma classe. A classe é uma definição de características e funcionalidades, algo abstrato que se concretiza com a criação de um objeto a partir de tal classe, quando se instancia um objeto. Um objeto já tem propriedades, com seus valores concretos, e podem ser passadas mensagens (chamar aos métodos) para que façam coisas.

Conclusão

Esta primeira matéria é para se familiarizar e facilitar o entendimento das classes. Nas próximas matérias iremos nos aprofundar nesta matéria trabalhando em cima de uma classe pronta, que servirá de laboratório. E como disse lá no começo da matéria, disponibilizarei algumas classes para serem usadas em seus projetos.

Comentários são sempre bem-vindos!

Até a próxima!

948
Thanks!
An error occurred!

About Marcus

Trabalha e se diverte com informática desde que a "barreira dos 100Mhz" foi rompida. Atualmente é desenvolvedor e continua levando seus trabalhos e projetos adiante, enquanto o tempo permitir.

,

3 Responses to PHP – Trabalhando com classes I

  1. Danilo 8 de julho de 2011 at 16:53 #

    Bacana os posts, pena que o codigo fica tudo zuado por causa do highlight.
    Não da nem pra entender…

    • Marcus Monteiro 13 de julho de 2011 at 13:53 #

      Obrigado danilo, vou consertar todos os bugs presentes no site. :)

  2. marcelo reis 16 de junho de 2011 at 21:55 #

    muito bom!! ,espero a proxima!!

Deixe uma resposta