Los modificadores de acceso (también llamados reglas de alcance) determinan qué código puede acceder a un elemento, es decir, qué código tiene permiso para leerlo o escribirle. En versiones anteriores de Visual Basic, había tres tipos de clases. Estos se han llevado a .NET. En cada uno de estos, .NET permite el acceso solo al código:
- Privado: dentro del mismo módulo, clase o estructura.
- Amigo: dentro de la misma asamblea.
- Público: en cualquier parte del mismo proyecto, desde otros proyectos que hacen referencia al proyecto y desde cualquier ensamblaje creado a partir del proyecto. En otras palabras, cualquier código que pueda encontrarlo.
VB.NET También ha agregado uno y medio nuevos.
- Protegido
- Amigo protegido
La "mitad" se debe a que Protected Friend es una combinación de la nueva clase Protected y la antigua clase Friend.
Los modificadores Protected y Protected Friend son necesarios porque VB.NET implementa el último requisito de OOP que faltaba VB: Herencia.
Antes de VB.NET, los programadores de C ++ y Java despreciables y despectivos menospreciaban a VB porque, según ellos, "no estaba completamente orientado a objetos". ¿Por qué? Las versiones anteriores carecían de herencia. La herencia permite que los objetos compartan sus interfaces y / o implementación en una jerarquía. En otras palabras, la herencia hace posible que un objeto de software adopte todos los métodos y propiedades de otro.
Esto a menudo se llama la relación "es-a".
- Un camión "es-un" vehículo.
- Una forma cuadrada "es-a".
- Un perro es un mamífero.
La idea es que los métodos y propiedades más generales y ampliamente utilizados son clases "primarias" definidas y se hacen más específicas en las clases "secundarias" (a menudo llamadas subclases). "Mamífero" es una descripción más general que "perro". Las ballenas son mamíferos.
El gran beneficio es que puede organizar su código para que solo tenga que escribir código que haga algo que muchos objetos tienen que hacer una vez en el padre. Todos los "empleados" deben tener asignado un "número de empleado". Un código más específico puede ser parte de las clases secundarias. Solo los empleados que trabajan en la oficina general necesitan que se les asigne una llave de tarjeta de puerta de empleado.
Sin embargo, esta nueva capacidad de herencia requiere nuevas reglas. Si una nueva clase se basa en una antigua, Protegido es un modificador de acceso que refleja esa relación. Se puede acceder al código protegido solo desde la misma clase o desde una clase derivada de esta clase. No desea que las llaves de la tarjeta de la puerta del empleado se asignen a nadie excepto a los empleados.
Como se señaló, Amigo protegido es una combinación del acceso de Amigo y Protegido. Se puede acceder a los elementos de código desde clases derivadas o desde el mismo ensamblaje, o ambos. Protected Friend puede usarse para crear bibliotecas de clases, ya que el código que accede a su código solo tiene que estar en el mismo ensamblado.
Pero Friend también tiene ese acceso, entonces, ¿por qué usaría Protected Friend? La razón es que Friend se puede usar en un archivo de origen, Espacio de nombres, Interfaz, Módulo, clase o estructura. Pero Amigo protegido solo puede usarse en una Clase. Amigo protegido es lo que necesitas para crear tus propias bibliotecas de objetos. Friend es solo para situaciones de código difíciles donde realmente se requiere un acceso amplio al ensamblado.