A orientação a objetos é fundamentada por três pilares fundamentais: encapsulamento, polimorfismo e herança. Nesta aula vamos compreender o primeiro pilar, o encapsulamento. Como a palavra diz, encapsular é colocar em uma capsula, ou seja, tornar inacessível o conteúdo dentro da capsula. Assim nasce o conceito de que todo objeto é uma “caixa preta”, assim não podemos acessar o seu conteúdo, exceto se passarmos pelas regras definidas pelo mesmo.
1- O que é encapsulamento?
Encapsular é tornar o código dentro de uma classe acessível ou inacessível para objetos fora da classe. A lógica que suporta este comportamento é que cada classe deve ter um significado e por si só deve descrever o comportamento de um objeto.
2 – Como encapsular em Java?
Para realizar o encapsulamento das informações são utilizados os modificadores de acesso: public, private, protected. A princípio veremos o public e o private, veja as definições:
public – É visível fora da classe e pode ser acessado sem restrições.
private – É invisível fora da classe e não pode ser acessado.
Já vimos que na construção de uma classe os atributos são declarados da seguinte forma:
private int idade;
Isto significa que o atributo idade só é visível para os métodos dentro da classe. Caso esse atributo fosse declarado como public, ele seria visível a todos e qualquer um poderia alterá-lo.
Os métodos de uma classe também possuem os atributos de visibilidade, por exemplo:
public void imprimirIdade(){
}
Isto significa que um método pode também ser visível ou invisível fora de uma classe.
3 – Por que encapsular?
O primeiro motivo da criação do encapsulamento é a organização do código. Quando criamos classes, cada uma delas possui uma função específica. Ou seja, elas descrevem um objeto específico, sendo assim, classes coesas não realizam várias funções.
Por exemplo: A classe relógio deve apenas marcar as horas ou então realizar ações pertinentes a classe relógio. Se esta classe for utilizada para realizar outras funções diferentes do objetivo da sua criação, ela estará com falta de coesão. Um problema bastante comum para programadores iniciantes.
Encapsular é sinônimo de esconder, isso é bom por que o que é escondido também é protegido do uso indevido. Observe o exemplo a seguir:
Exemplo 01:
Existem diversas classes escritas por outros desenvolvedores que são distribuídas aos programadores Java gratuitamente. No entanto, imagine um serviço de e-mail em que ao construir a mensagem para envio, possibilita ao usuário alterar o campo Remetente.
Parece algo bobo, porém com esse simples detalhe é possível que pessoas mal-intencionadas enviem e-mails fraudulentos. Alguns fingem ser de instituições financeiras e roubam senhas de banco, cartões e muito mais com um simples e-mail.