Encapsulamento de Dados

Olá! Continuando a nossa série sobre orientação a objetos, vamos falar hoje sobre Encapsulamento de Dados. Na Orientação a objetos, o encapsulamento significa separar o programa em partes, o mais isoladas possível. Dessa forma, tem-se por objetivo tornar o software mais flexível, fácil de modificar e de criar novas implementações.

No encapsulamento de dados, o que fazemos é impedir o acesso direto aos atributos da classe, criando métodos tanto para obter os valores dos atributos, quanto para atribuir valores a eles. Os métodos que realizam tais tarefas são comumente chamados de setters e getters (dos verbos set e get, em inglês).

Dessa forma, a classe Cachorro que tínhamos em nosso primeiro post sobre OO, utilizando o encapsulamento de dados, ficaria assim:

Primeiro em C++…

…e depois em Java…

Uma das grandes vantagens do uso do encapsulamento de dados é controlar o acesso aos atributos da classe, evitando comportamentos inesperados. Por exemplo, se determinado atributo não pode ser negativo, você pode condicionar o seu método de atribuição (set) a não deixar valores negativos (não atribuindo nada ou atribuindo alguma valor válido padrão). Além disso, caso determinado valor deva ser privado e não deve possuir acesso externo à classe, basta não definir seus métodos de acesso.

Bom pessoal, é isso. Aparentemente um assunto simples, mas onipresente no projeto de sistemas utilizando a orientação a objetos. No próximo post da série, falaremos sobre outro conceito muito importante na OO: a Herança!

Até lá!