Por exemplo, não é necessário conhecer todo o funcionamento interno de um carro para poder dirigi-lo. Para isso é escondido por baixo da lataria tudo que faz com que o carro funcione, deixando apenas para o usuário o que é realmente necessário para se dirigir. Assim é garantido que o usuário leigo, ou que não saiba completamente do funcionamento do carro faça mexa na peça errada, corte o fio errado ou faça qualquer outra besteira.
1. Public
A palavra chave public informa que a propriedade ou o método são públicos, ou seja, qualquer um pode acessar (desde subclasses como outras classes que estão a instanciando).
2. Private
Já a palavra chave private informa que a propriedade ou método só podem ser acessados internamente na classe. Nem seus filhos podem acessá-lo.
3. Protected
Enquanto isso protected indica que subclasses podem acessar, mas outras classes ou funções não têm essa permissão. Um exemplo de tudo isso junto:
class Pessoa
{
private $id;
protected $nome;
public function setId( $id )
{
$this->id = $id;
}
public function getId()
{
return $this->id;
}
public function getNome()
{
return $this->nome;
}
}
class PessoaFisica extends Pessoa
{
public function setId( $id )
{
$this->id = $id;
}
public function setNome( $nome )
{
$this->nome = $nome;
}
}
$pessoa = new Pessoa();
$pessoaFisica = new PessoaFisica();
/**
* Isto causa um Fatal Error,
* pois esta proriedade está como private
*/
$pessoa->id = 1;
$pessoa->setId(1); // já isto, funciona normalmente
$pessoaJuridica->setId(1); // isto causa outro Fatal Error
/**
* Isto causa um Fatal Error,
* pois esta proriedade está como protected
*/
$pessoaFisica->nome = 'Ademir Braga';
$pessoaFisica->setNome( 'Ademir Braga' ); // já isto, funciona
Nenhum comentário:
Postar um comentário