Como declarar uma classe: class
A sintaxe para a declaração de uma classe é:class Carro
{
//codigo dos atributos
//codigo dos metodos
}
Simplesmente a palavra-chave class, o nome que queremos dar a nossa classe (recomendamos começar com maiúsculo), e o código da classe entre chaves. Prontinho.
Como declarar um objeto: new
Após declarar uma classe, já podemos instanciar (como chamamos criar) nossos objetos. Fazemos isso como se fossemos criar novas variáveis, mas elas vão receber: new e o nome da classe e um par de parêntesis.Vamos criar alguns carros:
$gol = new Carro();
$celta = new Carro();
$corolla = new Carro();
Prontinho, agora $gol, $celta e $corolla são instâncias, são objetos e podemos trabalhar com eles diretamente. Mas eles ainda estão vazios, não tem nada dentro deles.
Que tal definimos a motorização deles?
Como criar e acessar atributos
Atributos são características, em outras palavras, são variáveis dentro das classes. Vamos definir uma variável dentro da nossa declaração de classe:class Carro
{
var $motor;
}
Pronto.
Agora toda vez que você for instanciar um objeto dessa classe, essa variável vai junto. Vamos ver?
Vamos instanciar um Honda Fit:
$fit = new Carro();
Para acessar a varável $motor, usamos o operador: ->
Vamos definir como 1.5 o motor do seu Fitoso:
$fit->motor = 1.5;
Agora rode o código:
<?php class Carro { var $motor; } $fit = new Carro(); $fit->motor=1.5; echo "Motor do meu corolla $fit->motor"; ?>
Como declarar e acessar métodos
Métodos nada mais são que funções, mas funções que só existem dentro de cada objeto.Declaramos as funções dentro da classe, e ao instanciarmos os objetos, eles herdam dela.
Vamos criar duas funções, a ligar ligar() e a desliga():
<?php class Carro { var $motor; function liga() { echo "Ligando o carro...vruum!<br/>"; } function desliga() { echo "Desligando o carro...fueeem ! <br />"; } } ?>Para acessar funções, fazemos:
$fit - >liga();
$fi - > desliga();
Teste:
$fit = new Carro();
$fit->motor=1.5;
$fit->liga();
echo "Motor do meu corolla $fit->motor<br />";
$fit->desliga();
Bem simples e bacana, essa orientação a objetos, não?