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!