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 seus membros. Esses modificadores podem ser usados a partir do código dentro ou fora do aplicativo atual.
Os modificadores de acesso em .NET são usados para controlar a acessibilidade de cada um dos membros de um tipo de diferentes áreas de código possíveis. Isso pode ser feito 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 de usar modificadores de acesso é implementar o encapsulamento, que separa a interface de um tipo de sua implementação. Com isso, os seguintes benefícios podem ser derivados:
- Prevenção de acesso ao conjunto de dados interno por usuários ao estado inválido.
- Provisão para mudanças na implementação interna dos tipos sem afetar os componentes que os utilizam.
- Redução da complexidade do sistema, reduzindo as interdependências entre os componentes de software.
Definirtec explica modificadores de acesso
O .NET framework oferece a opção de cinco tipos de modificadores de acesso:
- Privado – o código dentro do tipo só pode acessar os membros desse tipo e, portanto, a acessibilidade é limitada ao tipo atual
- Público – o código de qualquer lugar dentro do assembly atual, ou outro assembly que faz referência a ele, pode acessar os membros do tipo e, portanto, permite acessibilidade de qualquer lugar
- Protegido – o código dentro do tipo, ou suas classes derivadas, pode acessar os membros do tipo e, portanto, a acessibilidade é limitada ao tipo atual e classes derivadas
- Interno – o código na montagem atual, mas não de outra montagem, pode acessar os membros do tipo, portanto, a acessibilidade é limitada à montagem atual
- Interno protegido – o código no assembly atual pode acessar os membros do tipo e também do assembly que faz referência a ele. Portanto, a acessibilidade é de classes derivadas no assembly atual e deve ocorrer por meio de uma instância de 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á 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, uma vez que são públicos.
- As classes aninhadas e os membros da estrutura declarados dentro de um tipo são, para a classe que os contém, privadas por padrão.
- Os membros da estrutura não podem ser declarados protegidos, pois não oferece suporte à herança.
- Os destruidores não podem ter modificadores de acesso.
- O tipo derivado não pode ter maior acessibilidade do que seu tipo básico.
- O membro de um tipo recipiente deve ter acessibilidade menor do que o tipo recipiente. Isso pode ser ilustrado com um exemplo: Um método público em um tipo de recipiente 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 acesso por classes derivadas dela.
- Os 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.