Encapsulamento e visibilidade -PHP (parte II)

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)”

  1. Muito legal! Nosso amigo bamba se tornando referência na web! Shooooow de booola!