O encapsulamento é um dos pilares da orientação a objetos. Por meio dele, é possível simplificar bastante a programação, bem como proteger informações sigilosas ou sensíveis. Dominar esse conceito é fundamental, uma vez que com ele é possível deixar o código mais legível, funcional e reutilizável.

Java, por exemplo, utiliza bastante o conceito de encapsulamento. Quem desenvolve código nessa linguagem deve ter em mente que precisa controlar o acesso aos dados, de modo que não fiquem suscetíveis a ações indevidas.

Por isso, para esclarecer como o encapsulamento em POO funciona e pode ser utilizado, preparamos este artigo. Ao longo dele você verá:

Boa leitura!

O que é o encapsulamento?

Encapsular os dados de uma aplicação significa evitar que estes sofram acessos indevidos. Para isso, é criada uma estrutura que contém métodos que podem ser utilizados por qualquer outra classe, sem causar inconsistências no desenvolvimento de um código.

Na prática, isso é feito por meio de dois métodos: os getters e os setters. O primeiro tem por objetivo retornar o valor que lhe foi pedido, mas de forma a não prejudicar a integridade do dado em si.

Já o segundo recebe como argumento uma informação, que pode ser qualquer tipo de dados suportados pela linguagem. Dessa forma, não haverá o risco de ocorrerem acessos indevidos.

Como funciona o encapsulamento: entenda com exemplos!

Para que o conceito de encapsulamento fique de fato entendido, daremos alguns exemplos de uso. Veja a seguir!

Conta bancária

Suponha uma classe que representa uma conta bancária. Nela, a fins de simplificação, colocamos apenas os atributos nome e saldo. Também usaremos um método responsável por depositar um valor nessa conta bancária.

O cálculo será feito da seguinte forma: o novo saldo será o somatório entre o valor atual mais o depósito acrescido de 10%, ou um fator de 0,10.

Se os atributos puderem ser acessados diretamente em qualquer trecho do código, haverá o risco de o saldo ser alterado sem passar pelo método de depositar. Para evitar isso, podemos usar os métodos get e set para evitar o acesso direto.

Logo, para proteger as variáveis nome e, principalmente o saldo, utilizamos os métodos get saldo e set saldo. Antes disso, no entanto, é preciso alterar o nível de acesso das variáveis de pública para privada.

Quadrado

Um pequeno programa que contém a classe Quadrado contém as variáveis, lado 1 e lado 2. Se esses atributos forem declarados como públicos, haverá o risco de uma pessoa usuária inserir valores indevidos no programa.

No caso do quadrado, se for inserido um valor negativo, obviamente o programa retornará um erro.

Para evitar esse problema, deve-se fazer duas coisas: primeiro mudar o nível de acesso das variáveis, lado 1 e lado 2 e, depois, implementar algum método para evitar a inserção de um número inteiro negativo.

Logo, a solução de encapsulamento consiste em tornar os atributos privados, criando os métodos get e set.

Para que um número inválido não seja inserido, basta fazer um if else dentro do set, de modo que, se a entrada for um valor maior ou igual a zero, o número será igual ao que foi inserido.

Em contrapartida, se alguém inserir, por exemplo, um -1, o else do método set transformará esse valor em zero.

Níveis de acesso

Os níveis de acesso são responsáveis por informar qual o tipo de permissão de um determinado atributo. Nesse sentido, existem três níveis, que são:

  1. Público: consiste no nível de proteção mais baixo de todos, uma vez que todas as classes de um programa podem acessar os dados e os métodos livremente. Pode-se dizer que, nesse caso, não existe encapsulamento;
  2. Protegido: nesse nível, o acesso passa a ser mais restrito. Somente as classes derivadas da original é que têm total acesso aos atributos e métodos. Aqui, já existe encapsulamento, de modo que os métodos get e set passam a ser usados, bem como na declaração do atributo usa-se o private em vez do public;
  3. Private: aqui, o acesso aos dados é feito somente dentro da própria classe onde ela foi declarada.

Por fim, salientamos que o nível protegido está diretamente ligado ao conceito de herança. Este, por sua vez, assim como o encapsulamento, é um dos pilares da orientação a objetos.

Quais as vantagens de encapsular?

Com base no fato de que o encapsulamento evita o acesso indevido a alguns tipos de dados, diversas vantagens podem ser notadas. As principais delas você acompanha a seguir!

Manutenção de código

Depois de pronto, todo código, principalmente os mais extensos, são propensos a sofrer manutenções.

Com o encapsulamento, isso passa a ser mais fácil, uma vez que, com a devida proteção de acesso aos dados, a pessoa programadora achará mais rápido algum ponto onde o código precisa ser melhorado.

Sem o encapsulamento, seria bem difícil encontrar os pontos de inconsistência do código.

Reuso de código

É praticamente impossível falar em reuso de código sem citar os padrões de projeto. Por meio destes, diversas aplicações passaram a ser desenvolvidas de forma mais rápida e eficiente.

Com o encapsulamento, o programa terá mais chances de ter o código reaproveitado em outros projetos, poupando bastante tempo da equipe de desenvolvimento.

Desenvolvimento acelerado e simplificado

O encapsulamento transforma a implementação de alguns códigos em uma espécie de caixa preta. Na prática, isso significa que as classes externas não precisam acessar alguns dados de forma direta. Assim, o desenvolvimento dos sistemas passa a ficar simplificado e acelerado.

Além de ser um dos pilares da orientação a objetos, o encapsulamento é útil na hora de simplificar a programação, bem como proteger os dados sensíveis ou sigilosos. Também é importante frisar que o desenvolvimento das aplicações passa a ficar mais ágil e com possibilidade de reuso.

Gostou de saber sobre o assunto? Então, aproveite a visita em nosso blog e confira o que é DBA e quais as suas vantagens!

0 Shares:
Você também pode gostar