Pular para o conteúdo principal

PHP - Encapsulamento e modificadores de acesso

Neste post, vamos mostrar como usar encapsulamento e modificadores de acesso em PHP, incluindo exemplos práticos (você pode ver o que já publicamos sobre o PHP aqui).


Encapsulamento em PHP

Encapsulamento é a prática de esconder o estado e comportamento interno de um objeto do mundo externo e fornecer uma interface pública para interagir com o objeto. Isso pode ser alcançado usando modificadores de acesso, como "public", "private" e "protected". Por exemplo, a seguinte classe "ContaBancaria" encapsula a propriedade "saldo":

    
        class ContaBancaria {

            private $saldo;
        
            public function __construct($saldoInicial) {
        
                $this->saldo = $saldoInicial;
            }
        
            public function depositar($valor) {
        
                $this->saldo += $valor;
            }
        
            public function sacar($valor) {
        
                if ($this->saldo >= $valor) {
        
                    $this->saldo -= $valor;
                    return true;
                }
                return false;
            }
        
            public function verSaldo() {
        
                return $this->saldo;
            }
        }        
    


Modificadores de acesso em PHP

Os modificadores de acesso "public", "private" e "protected" são usados para controlar o acesso às propriedades e métodos de uma classe como visto anteriormten, sendo "public" para permitir que as propriedades e métodos sejam acessados de qualquer lugar, "private" para permitir que as propriedades e métodos sejam acessados apenas dentro da própria classe e "protected" para permitir que as propriedades e métodos sejam acessados apenas dentro da própria classe e suas classes derivadas.

A classe "ContaBancaria" vista anteriormente usa o modificador de acesso "private" para controlar o acesso à propriedade "saldo", o que significa que ela só pode ser acessada dentro da própria classe, enquanto os métodos "depositar", "sacar" e "verSaldo" são públicos e podem ser acessados de qualquer lugar, garantindo que o saldo só será alterado a partir dos métodos com essa finalidade (depositar/sacar) e caso seja necessário ver seu conteúdo devemos usar "verSaldo".


Conclusão

Com esses recursos, é possível controlar a segurança e acessibilidade dos atributos e métodos de uma classe, garantindo a integridade dos dados e evitando possíveis erros de programação.

Comentários

Mais visitadas

Desabilitar POST do ENTER ASP .NET

Caso não seja necessário uma atualização de página a cada vez que o usuário pressionar a tecla “ ENTER ” podemos codificar uma pequena função em javascript anulando esse comportamento, segue o código: < script language ="javascript"> function desabilitaPostDoEnter(e) {      var key;      if (window.event)           key = window.event.keyCode;  //IE      else           key = e.which;                      //firefox      if (key == 13)           return false ;      else           return true ; } </ script > Agora nos objetos que se deseja c...

Lista de políticos com ficha suja

ATUALIZAÇÃO (08/03/2012 ano de eleição) Representantes de duas pessoas da lista (Eliseu Padilha e Alex Canziani) entraram em contato e pediram que esses fossem removidos, alegando que não houve condenação. É justo essa requisição, porém vale lembrar que escândalos nacionalmente reconhecidos de corrupção não deram em nada, por isso o que realmente conta nesse ano de eleição é uma pesquisa minuciosa sobre os candidatos escolhidos, eu particularmente, por não estar nem um pouco satisfeito, não irei votar em ninguém que já tenha sido eleito. Estou voltando a postar por um motivo nobre, meu tempo continua apertado mas esse post é rápido, na verdade nem meu ele é (visitem o espaço de nosso amigo Lord ), estou apenas repassando essa valiosa informação. Teremos eleição esse ano, e é importante não repetirmos erros passados, vamos ficar atentos em relação a esses nomes e exclui-los de vez do cenário politico nacional. Façamos nossa parte, publicando em nossos blog...

Limpando objetos dinamicamente (Delphi)

  Muitas vezes nos deparamos com situações onde devemos remover o conteúdo de determinados objetos, como por exemplo Edits ou mesmo Labels e dependendo da complexidade da tela setar manualmente cada campo pode ser trabalhoso.Sendo assim mostraremos hoje como montar um esquema automático e genérico para esse caso:   procedure TForm1.Button1Click(Sender: TObject);  procedure LimparEdits(AControl: TComponent); var    vLoop: Integer; begin     { ComponentCount retorna a qtde de componentes que o parent é o AControl, ou seja, somente os componentes que     estão ligados a ele }     for vLoop := 0 to AControl.ComponentCount-1 do      begin                                         ...