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!






Bacana os posts, pena que o codigo fica tudo zuado por causa do highlight.
Não da nem pra entender…
Obrigado danilo, vou consertar todos os bugs presentes no site. :)
muito bom!! ,espero a proxima!!