Conheça o Plugfeed | » Início » Programação » Java » Visibilidade de Atributos de Métodos
Conheça o Plugfeed | » Início » Programação » Java » Visibilidade de Atributos de Métodos -->
 
Avaliação: Não avaliado | Publicado em: 04/09/2006
Visibilidade de Atributos de Métodos
Thiago Victorino Atua como desenvolverdor web há 2 anos, formado em Técnico em Informática com ênfase na industria no SENAI - Joinvile/SC unidade Norte. Se interessa por todas as tecnologias web.
Visibilidade de Atributos de Métodos

Olá mais uma vez pessoal

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 defienm 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 acessoa 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 é acessivel 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 aceesar de dentro das sun 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 acessa-la.

Há outros modificadores em que relatarei para todos mais tarde.
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 nao possa lhe dar dor de cabeça.

Um grande abraço a todos

Artigos relacionados








Um produto Detetive.net