Definición: ¿Qué significan los modificadores de acceso?
Los modificadores de acceso son palabras clave que se utilizan para especificar la accesibilidad de una clase (o tipo) y sus miembros. Estos modificadores se pueden usar desde el código dentro o fuera de la aplicación actual.
Los modificadores de acceso en .NET se utilizan para controlar la accesibilidad de cada uno de los miembros de un tipo desde diferentes áreas posibles de código. Esto se puede manejar desde dentro del ensamblaje actual o fuera de él. Un ensamblado representa una unidad lógica de funcionalidad y consta de tipos y recursos ubicados en uno o más archivos.
El propósito de usar modificadores de acceso es implementar la encapsulación, que separa la interfaz de un tipo de su implementación. Con esto, se pueden derivar los siguientes beneficios:
- Prevención del acceso a los datos internos establecidos por los usuarios a un estado no válido.
- Provisión para cambios en la implementación interna de los tipos sin afectar los componentes que lo utilizan.
- Reducción de la complejidad del sistema al reducir las interdependencias entre componentes de software.
Techinfo explica los modificadores de acceso
.NET framework ofrece la opción de tener cinco tipos de modificadores de acceso:
- Privado: el código dentro del tipo solo puede acceder a los miembros de ese tipo y, por lo tanto, la accesibilidad está limitada al tipo actual
- Público: el código desde cualquier lugar dentro del ensamblado actual u otro ensamblado que haga referencia a él puede acceder a los miembros del tipo y, por lo tanto, permite la accesibilidad desde cualquier lugar.
- Protegido: el código dentro del tipo, o sus clases derivadas, puede acceder a los miembros del tipo y, por lo tanto, la accesibilidad está limitada al tipo actual y las clases derivadas.
- Interno: el código del ensamblado actual, pero no de otro ensamblado, puede acceder a los miembros del tipo, por lo que la accesibilidad está limitada al ensamblado actual
- Interno protegido: el código del ensamblado actual puede acceder a los miembros del tipo y también desde el ensamblado que hace referencia a él. Por lo tanto, la accesibilidad proviene de clases derivadas en el ensamblado actual y debe tener lugar a través de una instancia del tipo de clase derivada en el ensamblado que hace referencia a él.
Hay varias reglas que se aplican a los modificadores de acceso:
- Cuando no se especifica ningún modificador de acceso para escribir miembros, el nivel de acceso predeterminado es privado e interno.
- No se permiten modificadores de acceso para espacios de nombres, ya que son públicos.
- Las clases anidadas y los miembros de estructura declarados dentro de un tipo son, para la clase contenedora, privados de forma predeterminada.
- Los miembros de la estructura no se pueden declarar protegidos porque no admiten la herencia.
- Los destructores no pueden tener modificadores de acceso.
- El tipo derivado no puede tener mayor accesibilidad que su tipo base.
- El miembro de un tipo contenedor debe tener una accesibilidad menor que la de su tipo contenedor. Esto se puede ilustrar con un ejemplo: un método público en un tipo contenedor no puede tener "A" como parámetro, si el tipo A no está en visibilidad pública.
- Las interfaces se declaran públicas e internas y no pueden tener otros modificadores de acceso, ya que las interfaces se utilizan principalmente para que las clases obtengan acceso a ellas.
- Los modificadores de acceso se utilizan no solo para los miembros de la clase, sino también para otras construcciones de código con la misma intención.