Índice:
Definição - O que significa Modificadores de Acesso?
Modificadores de acesso são palavras-chave usadas para especificar a acessibilidade de uma classe (ou tipo) e de seus membros. Esses modificadores podem ser usados a partir de código dentro ou fora do aplicativo atual.
Modificadores de acesso no .NET são usados para controlar a acessibilidade de cada membro de um tipo de diferentes áreas possíveis de código. Isso pode ser tratado de dentro da montagem atual ou fora dela. Um assembly representa uma unidade lógica de funcionalidade e consiste em tipos e recursos localizados em um ou mais arquivos.
O objetivo do uso de modificadores de acesso é implementar o encapsulamento, que separa a interface de um tipo da sua implementação. Com isso, os seguintes benefícios podem ser obtidos:
- Prevenção de acesso aos dados internos configurados pelos usuários para um estado inválido.
- Provisão para alterações na implementação interna dos tipos sem afetar os componentes que o utilizam.
- Redução na complexidade do sistema, reduzindo as interdependências entre os componentes de software.
Techopedia explica modificadores de acesso
A estrutura .NET fornece uma opção de ter cinco tipos de modificadores de acesso:
- Private - o código dentro do tipo pode acessar apenas os membros desse tipo e, portanto, a acessibilidade é limitada ao tipo atual
- Código público - de qualquer lugar dentro do assembly atual, ou outro assembly que faça referência a ele, pode acessar os membros do tipo e, portanto, permite acessibilidade de qualquer lugar
- Protected - código dentro do tipo, ou de suas classes derivadas, pode acessar os membros do tipo e, portanto, a acessibilidade é limitada ao tipo atual e às classes derivadas
- Código interno - no assembly atual, mas não de outro assembly, pode acessar os membros do tipo, portanto, a acessibilidade é limitada ao assembly atual
- Interno protegido - o código no assembly atual pode acessar os membros do tipo e também do assembly que o referencia. Portanto, a acessibilidade é de classes derivadas no assembly atual e deve ocorrer por meio de uma instância do tipo de classe derivada no assembly que faz referência a ele
Existem várias regras que se aplicam aos modificadores de acesso:
- Quando não há nenhum modificador de acesso especificado para digitar membros, o nível de acesso padrão é privado e interno.
- Não há modificadores de acesso permitidos para namespaces, pois eles são públicos.
- As classes aninhadas e os membros da estrutura declarados em um tipo são, para a classe que contém, privados por padrão.
- Os membros do Struct não podem ser declarados protegidos, pois ele não suporta herança.
- Destrutores não podem ter modificadores de acesso.
- O tipo derivado não pode ter maior acessibilidade que seu tipo base.
- O membro de um tipo que contenha deve ter acessibilidade menor que a do seu tipo que contém. Isso pode ser ilustrado com um exemplo: Um método público em um tipo de contenção não pode ter "A" como parâmetro, se o tipo A não estiver em visibilidade pública.
- As interfaces são declaradas públicas e internas e não podem ter outros modificadores de acesso, uma vez que as interfaces são usadas principalmente para o acesso das classes derivar delas.
- Modificadores de acesso são usados não apenas para membros da classe, mas também para outras construções de código com a mesma intenção.