50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
|
---
|
||
|
title: Classes and Objects
|
||
|
localeTitle: Classes e Objetos
|
||
|
---
|
||
|
# Classes e Objetos
|
||
|
|
||
|
Classes são a forma como representamos tipos de objetos no mundo. Objetos seriam as _instâncias_ reais dessa classe no mundo. Uma classe define _propriedades_ e _comportamento_ de um objeto dessa classe. A classe define como o objeto pode interagir com o resto do mundo. As aulas também nos permitem abstrair detalhes que não queremos mostrar a outras pessoas!
|
||
|
|
||
|
Digamos, por exemplo, você tem um cachorro chamado Spot. Spot é uma instância de um objeto Dog (classe).
|
||
|
|
||
|
Código PHP para definir uma classe:
|
||
|
|
||
|
```php
|
||
|
// Dog class
|
||
|
class dog {
|
||
|
// Keep name and age private - we don't want to be able to change these!
|
||
|
private $name;
|
||
|
|
||
|
private $age;
|
||
|
|
||
|
// Constructor allows us to make an object of this class with given parameters.
|
||
|
function __construct($name, $age){
|
||
|
$this->name = $name;
|
||
|
$this->age = $age;
|
||
|
echo 'Dog named: '.$this->name.' is '.$this->age.' years old.';
|
||
|
}
|
||
|
|
||
|
// Destructor gets called when the item is deleted.
|
||
|
function __destruct(){
|
||
|
echo 'Dog '.$this->name.' has ran off into the sunset';
|
||
|
}
|
||
|
|
||
|
function getname() {
|
||
|
echo $this->name;
|
||
|
}
|
||
|
|
||
|
function getage() {
|
||
|
echo $this->age;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
$mydog = new dog("Spot", "8");
|
||
|
echo $mydog->getname();
|
||
|
echo $mydog->getage();
|
||
|
```
|
||
|
|
||
|
O código acima iria ecoar: Cão nomeado: Spot é de 8 anos de idade. Local 8 Dog Spot fugiu para o pôr do sol
|
||
|
|
||
|
Eu criei um objeto $ mydog de classe cachorro. Seu construtor foi chamado, usei alguns métodos dentro da classe, então o destruidor foi chamado.
|