Encapsulamento (informática): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Onjacktallcuca (discussão | contribs)
Linha 7:
Uma grande vantagem do encapsulamento é que toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados. No exemplo do liquidificador, um técnico poderia substituir o motor do equipamento por um outro totalmente diferente, sem que a dona de casa seja afetada - afinal, ela continuará somente tendo que pressionar o botão.
 
O encapsulamento protege o acesso direto (referência) aos [[Atributo (programação)|atributos]] de uma [[Instância (classe)|instância]] fora da [[classe (programação)|classe]] onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe. clas
<gallery>
{| class="wikitable sortable"
|-
! Texto do cabeçalho !! Texto do cabeçalho !! Texto do cabeçalho
|-
| Exemplo || Exemplo || Exemplo
|-
| Exemplo || Exemplo || Exemplo
|-
| Exemplo || Exemplo || Exemplo
|}
</gallery>
se. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe.
 
Encapsular atributos também auxilia a garantir que o estado e o comportamento de um objeto se mantenha coeso. Por exemplo, no caso da classe <code>Semaforo</code> poderiamos ter um método de acesso chamado <code>lerCor()</code>, e um modificador chamado <code>proximaCor()</code>. O estado é mantido pois os usuários da classe não podem alterar as cores de um semáforo ao seu bel prazer e, por exemplo, fazer a seguinte troca de cores: vermelho-amarelo-vermelho. É comum usar o padrão get<nomeDoAtributo> para o método que retorna o valor atual do atributo e set<nomeDoAtributo> para o método que modifica o valor de um atributo do objeto, como no exemplo abaixo: <code>setComProtecao</code> e <code>getComProtecao</code>.