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á:
- O que é encapsulamento?
- Como funciona o encapsulamento: entenda com exemplos!
- Quais as vantagens de encapsular?
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:
- 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;
- 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;
- 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!
2 comments