Nessa aula estudaremos os construtores de classe, ou seja, funções que são invocadas no momento em que uma nova instância de classe está sendo criada. Também estudaremos a inicialização de classe, ou seja, veremos quais os passos ocorridos a cada nova instância criada. |
CONSTRUTORES
Construtor é um bloco de instrução, semelhante a uma função, definido implicita ou explicitamente por todas as classes, que é invocado automaticamente pela Máquina Virtual, todas as vezes que um objeto está sendo criado. Construtores são definidos como sendo funções, porém, não o são! Isso porque, funções retornam valores e o único valor que um construtor poderia retornar, seria a instância que está sendo no mesmo instante definida.
Porém, num primeiro momento, vamos pensar num construtor como sendo um método, até porque, o mesmo possui um nome, um corpo e pode receber parâmetros. Porém, um construtor não pode ser invocado quando desejarmos, ou melhor, o construtor é um bloco de código que será invocado só e somente só na criação de novas instâncias.
DEFINIÇÃO
O nome do construtor de todas as classes sempre será __construct()
. Essa é uma convenção da linguagem e não há como trabalhar de maneira diferente. Dessa forma, é fácil identificarmos o construtor da classe, até porque, todas utilizarão o padrão.
A seguir, temos algumas regras que se aplicão aos contrutores.
- O construtor que será invocado na criação de novos objetos tem o nome de: __construct. Os dois underlines a frente do nome é obrigatório.
- Construtores são geralmente utilizados para trabalharmos com valores não literais, isto é, para trabalharmos com objetos. A razão é bastante simples: todo objeto precisa ser criado e isso é feito dentro de algum bloco de instrução.
- O PHP primeiro cria uma nova instância de um objeto para somente então invocar o seu construtor. Do contrário, não seria possível, por exemplo, acessar os membros da classe e nem fazer uso da pseudo-variável $this. Assim, primeiro cria-se uma nova instância e, somente depois é que o construtor será invocado.
- As variáveis de uma classe são inicializadas antes do construtor ser invocado, assim, se alterarmos o valor de um atributo dentro do bloco do construtor, este passará a ser o valor assumido por todas as instâncias.
- O PHP tem definido que, construtores que não recebem parâmetros poderão ter suas instâncias criadas sem a utilização do par de parêntesis.
EXEMPLO FEITO EM AULA
#CONSTRUTORES
class Pessoa{
public $idade = 0;
public $nome;
function aaa(){
}
function bbb(){
}
function __construct(){
echo "teste\n";
var_dump($this);
}
}
$p1 = new Pessoa();
$p2 = new Pessoa();
VEJA TAMBÉM
- Aula 91: Primeira Classe
- Aula 92: Primeira Classe
- Aula 93: Criação de Objetos
- Aula 94: Acessando Membros de Classe
- Aula 95: Implementando Funcionalidades na Classe
- Aula 96: Pseudo variável $this
- Aula 97: Gerenciando atributos de Classe
- Aula 98: Construtor
- Aula 99: Construtores Personalizados
- Aula 100: Destrutores
- Aula 101: Encapsulamento I
- Aula 102: Encapsulamento II
- Aula 103: Herança I
- Aula 104: Herança II
- Aula 105: Modificadores de Acesso
- Aula 106: Visibilidade das Funções
- Aula 107: Funções Modificadoras
- Aula 108: Sobrescrita de Funções
Tags curso, php, programação orientada a objetos, poo, construtor, classe, objeto, instância, blog
Comentários
comments powered by Disqus