Encapsulamento

O que nos lembra a palavra encapsular? O que você diria se alguém pedisse a definição da palavra encapsulamento? E cápsula, lembra alguma coisa?

Encapsulamento é a característica da OO capaz de ocultar partes (dados e detalhes), de implementação interna de classes, do mundo exterior.

Graças ao encapsulamento, podemos ver as classes apenas pelos serviços (métodos) que elas devem oferecer para quem as utiliza. Não visualizamos, nesse caso, de que forma (como) o serviço (método) está implementado internamente na classe. No fundo, o encapsulamento da classe acaba definindo um contrato que determina o que o mundo exterior pode fazer com objetos daquela classe.

Na Figura 1, podemos ver que um objeto que possui a característica de encapsulamento fica protegido por uma cápsula. Essa cápsula, que chamamos de interface, serve para ocultar e proteger de outros objetos, os detalhes de implementação daquele objeto. Dessa maneira, o objeto só disponibiliza, através da interface, os serviços ou funcionalidades que ele deseja receber mensagens (solicitações) de outros objetos.

Um objeto com encapsulamento

Para facilitar nosso entendimento, vamos a um exemplo. Considere um objeto Automóvel que disponibiliza para um objeto Pessoa (na OO tudo é objeto!) a direção como parte da sua interface, para que se possa guiar o Automóvel para a esquerda ou para a direita. Através da direção, a Pessoa solicita ao Automóvel esses serviços, sem saber COMO serão feitos ou estão implementados.

Apenas o Automóvel sabe que mecanismos serão acionados para atender a solicitação da Pessoa. A Pessoa apenas usufrui do resultado da solicitação. Observe a Figura 2.

Pessoa usando a direção como interface para acessar os serviços de Automóvel

Podemos dizer, nesse caso, que estamos aplicando a característica de encapsulamento ao objeto Automóvel, pois ocultamos do objeto Pessoa os detalhes da implementação dos serviços oferecidos pelo Automóvel.

Você deve estar se perguntando: como isso acontece na prática?

Antes de mostrarmos a implementação na linguagem Java do uso do encapsulamento, precisamos conhecer os chamados Modificadores de Acesso da linguagem.

Versão 5.3 - Todos os Direitos reservados