Pesquisar neste blog

quarta-feira, 27 de junho de 2012

Encapsulamento em PHP O.O.


O Encapsulamento é um dos recursos mais importantes na Orientação a Objetos. Definição do dicionário: Encapsular – “Circundar, rodear de uma cápsula… proteger em uma cápsula ou como em uma cápsula…”. 
Existem três formas de encapsular seus objetos: public (público), protected (protegido) ou private (privado), vamos entender melhor cada um desses tipos.
Public (público): Quando um atributo ou método é definido como public significa que ele pode ser acessado livremente em qualquer lugar da classe ou subclasse. Existem duas formas de você declarar um atributo ou método como público, são elas:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
// Forma 1
class TesteEncapsulamento {
   $teste;
}
 
// Forma 2
class TesteEncapsulamento {
    public $teste;
}
 
?>
Apesar da primeira forma estar correta no PHP, eu recomendo e prefiro sempre a utilização da segunda, pois assim você ficará acostumado a sempre declarar a visibilidade de seus Métodos e Atributos.
Protected (protegido): Quando um atributo ou método é definido como protected significa que ele só pode ser acessado de dentro da própria classe ou em suas classes-filha (saiba mais sobre Herança clicando aqui):
1
2
3
4
5
6
<?php
 
class TesteEncapsulamento {
    protected $teste;
}
?>
Private (privado): Quando um atributo ou método é definido como private significa que ele só pode ser acessado de dentro da própria classe. Sendo assim suas subclasses não podem acessar seus métodos e atributos (saiba mais sobre Herança clicando aqui):
1
2
3
4
5
6
7
8
9
10
11
class Funcionario {
   private $nome;
 
   public function setNome($nome){
      $this->nome = $nome;
   }
   public function getNome(){
      return $this->nome;
   }
 
 }
Grande abraço!

Nenhum comentário: