Al crear una clase por defecto es Pública pero se pueden considerar muchas más visibilidades que propone la programación orientada a objetos no necesariamente a la clase sino a los elementos que la componen con los atributos y métodos de clase.
Tenemos los siguientes alcances:
- Public (Público): Puede obtener acceso al tipo o miembro cualquier otro código del mismo ensamblado o de otro ensamblado que haga referencia a este.
- Private (Privado)
Solamente puede obtener acceso al tipo o miembro el código de la misma clase.
- Protected (Protegido): Solamente puede obtener acceso al tipo o miembro el código de la misma clase o de una clase derivada.
- Friend: Puede obtener acceso al tipo o miembro cualquier código del mismo ensamblado, pero no de un ensamblado distinto.
- Protected Friend: Puede obtener acceso al tipo o miembro cualquier código del mismo ensamblado o cualquier clase derivada de otro ensamblado.
Comparación entre los Modificadores de Visibilidad
ALCANCE | MÁXIMO NIVEL DE ACCESO | ELEMENTOS QUE PUEDE DECLARAR CON ESTE NIVEL DE ACCESO | ELEMENTOS QUE PUEDE DECLARAR CON ESTE NIVEL DE ACCESO |
---|---|---|---|
Public | Sin restricciones: Cualquier código que puede ver un elemento público puede tener acceso a él. | Interfaces Módulos Clases Estructuras Miembros de estructura Procedimientos Propiedades Variables miembros Constantes Enumerations Eventos Declaraciones externas Delegados | Archivo de código fuente Espacio de nombres interface Module Class Structure |
Protected | De derivación: El código de la clase que declara un elemento protegido o una clase derivada de él, puede tener acceso al elemento. | Interfaces Clases Estructuras Procedimientos Properties Variables miembros Constantes Enumerations Eventos Declaraciones externas Delegados | Class |
Friend | Assembly: El código del ensamblado que declara un elemento de tipo Friend puede tener acceso a él. | Interfaces Módulos Clases Estructuras Miembros de estructura Procedimientos Propiedades Variables miembros Constantes Enumerations Eventos Declaraciones externas Delegados | Archivo de código fuente Espacio de nombres Interface Module Class Structure |
ProtectodFriend | Unión de Protected y Friend: El código de la misma clase o el mismo ensamblado que el elemento de tipo ProtectedFriend o aquel que está dentro de cualquier clase derivada de la clase del elemento, puede tener acceso a él. | Interfaces Clases Estructuras Procedimientos Properties Variables miembros Constantes Enumerations Eventos Declaraciones externas Delegados | Class |
Private | Contexto de declaración: El código del tipo que declara un elemento privado, incluido el código de los tipos contenidos, puede tener acceso al elemento. | Interfaces Clases Estructuras Miembros de estructura Procedimientos Propiedades Variables miembros Constantes Enumerations Eventos Declaraciones Externas Delegados | Module Class Structure |