Blog AWS

POO – Visibilidade de Atributos de Métodos

O meu objetivo aqui não é ensinar como se programa orienta a objeto de um mode geral, e sim, como se usa a sitaxe da linguagem PHP.

As visibilidade disponíveis são privativo (private)públicos(public) e protegidos(protect), eles definem como o atributo ou método se comporta dentro do meu programa.

Modificador Public
Quando você define um método ou atributo como público, você está liberando o acesso a ele de qualquer lugar que contenha a classe.
Ex:

<?php
class carro
{
public $modelo;
public function setModelo($_model)
{
$this->modelo = $_model;
}
}
$objeto = new carro;
$objeto->setModelo(“GOLF”);
$modelo = “CHALERA”;
?>

Observe que eu consigo mudar o valor do atributo de fora da classe.

Modificador Protected
Esse modificador restringe o acesso de fora da classe, porém ele ainda é acessível de suas subclasses, ou seja, as classes que herdaram os atributos dela.

<?php
class carro
{
protected $modelo;
protected function setModelo($_model)
{
$this->modelo = $_model;
}
}
class caminhao extends carro
{
public function setModelo($_mo)
{
parent::modelo = $_mo;//não da erro
   }
}
$objeto = new carro;
$objeto->setModelo(“GOLF”);//causa erro
$modelo = “CHALERA”;//causa um erro
?>

Consigo acessar de dentro das sub classes, mas de fora das classes, eu não tenho acesso.

Modificador Private
Esse modificador é mais restritivo, só da permissão de acesso a sua própria classe, em nenhum outro lugar eu posso acessá-la.

<?php
class carro
{
private $modelo;
private function setModelo($_model)
{
$this->modelo = $_model;
}
}
class caminhao extends carro
{
public function setModelo($_mo)
{
parent::modelo = $_mo;//causa erro
}
}
$objeto = new carro;
$objeto->setModelo(“GOLF”);//causa erro
$modelo = “CHALERA”;//causa um erro
?>

Agora ele não permitiu modificar fora de sua própria classe, nem das que a herdam pode acessá-la.

Quanto a que visibilidade que eu devo definir, fica a critério do programador e do analista, veja sua necessidade, para que seu código não possa lhe dar dor de cabeça.

Fonte: Plugmasters – Thiago Victorino

Uma resposta ao post: “POO – Visibilidade de Atributos de Métodos”

  1. Sergio Agnello

    out 1st, 2019 :

    Muito bom! Utilizei!

Deixe seu comentário

Nome (Requerido)

E-mail (Requerido - não será publicado)

URL do seu Website (caso tenha)

Mensagem (Requerido)