No artigo anterior vimos o que é encapsulamento e suas vantagens. Vimos também a visibilidade private. Hoje vamos continuar com a visibilidade protected.
protected:
Para explicar como funciona essa visibilidade vamos utilizar uma super classe funcionário e uma classe especifica chamada de professor.
Abaixo o código da classe funcionário.class.php
<
?php
class funcionario
{
private $Codigo;
private $Nome;
//veja que o atributo salário esta como private.
private $Salario;
//função para “setar” um valor no atributo salario
function SetSalario($Salario)
{
//antes de passar o valor do salario verificamos se o mesmo e um numero e positivo, se sim, passamos o valor para o atributo
if (is_numeric($Salario) and ($Salario > 0))
{
$this->Salario = $Salario;
}
}
}
?>
Abaixo o código da classe professor.class.php
<
?php
class Professor extends Funcionario
{
//funcao que mostra o valor do atributo salario, atributo que esta na classe pai
function GetSalario()
{
echo" O valor é: {$this->Salario}";
}
}
?>
Observe que estamos estendendo essa classe para a classe funcionário.
E por fim o código do nosso arquivo que testa nossas classes.
arquivo testa-protected.php.
< ?php include_once'Funcionario.class.php'; include_once'Professor.class.php'; $professor1 = new Professor(); $professor1->SetSalario(1000); $professor1->GetSalario(); ?>
Depois de executar você verá que não foi mostrado nenhum resultado. Isso porque o atributo salário (da classe funcionário) está como private. Se mudarmos para protected será retornado o valor do salário. Faça o teste!
Próxima matéria veremos a visibilidade public.
Comentários
Uma resposta para “Encapsulamento e visibilidade -PHP (parte II)”
Muito legal! Nosso amigo bamba se tornando referência na web! Shooooow de booola!