Encapsulamento

O encapsulamento, em uma linguagem orientada a objetos, é uma forma de separar os métodos e as propriedades de uma classe pelo seu tipo de acesso, dando acesso as informações necessárias de uma classe para outra.

O encapsulamento é implementado utilizando os especificadores de acesso. Um especificador de acesso, assim como o seu próprio nome diz, registra qual o nível de acesso que a propriedade ou método terá. Em C# existem 5 possibilidades:

• Internal;

• Private;

• Protected;

• Protected Internal;

• Public.

Com esses especificadores, o encapsulamento fica completo.

O especificador Internal define que o membro será exposto no escopo do assembly.

O especificador Private define que o membro será exibido apenas em sua própria classe, garantindo o uso privado do membro.

O especificador Protected define que o membro será exibido para as classes herdeiras (os métodos/propriedades da classe pai ficam visíveis para as classes filhas).

O especificador Protected Internal define que o membro será exibido no escopo do assembly ou nas classes herdeiras

O especificador Public define que o membro será exibido para outros objetos e/ou outras funções.

Para exemplificar como o encapsulamento é feito, veja a imagem abaixo.

Na imagem abaixo está demonstrado como os métodos e propriedades são exibidos quando eles são chamados a partir de uma classe comum (sem herdar nenhuma outra), de acordo com o seu tipo de encapsulamento.