C#: Programación orientada a objetos

Modificadores de acceso disponibles en Visual C#

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
Durante este video definiremos el concepto de modificadores de acceso. Veremos también cuáles son los disponibles en Visual C# y cuándo debemos aplicar cada uno, de acuerdo a los requerimientos de nuestro sistema.
07:25

Transcripción

Los modificadores de acceso indican el nivel de accesibilidad que tendrá un tipo o miembro de un tipo. Este nivel de accesibilidad controla si el elemento puede utilizarse por otro código de su ensamblado o por otros ensamblados. El modificador de acceso "public" indica el nivel de acceso menos restrictivo. No existen restricciones para tener acceso a miembros con este modificador. "Private" representa el nivel de acceso más restrictivo. Implica acceso limitado al tipo contenedor. Además, los elementos definidos como "private" solo son accesibles dentro del cuerpo de la clase en la que se declara. "Protected" implica un acceso limitado a la clase contenedora o a los tipos derivados de esta clase. Se puede acceder a este elemento desde la clase derivada. Finalmente tenemos el modificador de acceso "internal" que indica acceso limitado al ensamblado actual. Esto quiere decir que solo pueden ser consultados o accedidos dentro de los archivos del mismo ensamblado. Hemos mencionado anteriormente que el encapsulamiento es una propiedad o característica de la programación orientada a objetos que nos va a permitir definir niveles de acceso. Estos niveles de acceso vamos a poder definirlos mediante el uso de los modificadores de acceso. Si observamos nuestra clase "Empleado" podemos ver que hemos creado anteriormente un "enum" que se llama "FrecuenciaDePago". Este "enum" tiene un modificador de acceso "public" que es el nivel de acceso con menor restricción. Cualquier estructura que definamos dentro de un "namespace" o espacio de nombres no va a poder tener el modificador de acceso "private" "protected" o "protected internal". Por lo tanto vamos a dejar de esta forma el "enum" "FrecuenciaDePago". De cualquier forma es correcto que esté como "público" para que las demás clases puedan acceder a este "enum". Para definir correctamente los modificadores de acceso debo pensar para cada clase y cada elemento de una clase -en este caso la clase "Empleado"- cómo quiero que los demás elementos de mi sistema interactúen con él. Hemos mencionado que "Empleado" es una clase que está dentro del espacio de nombres "MiEscuela". Por lo tanto lo voy a poner como público. Ahora puedo pensar en cada uno de los atributos de la clase "Empleado". He definido un atributo "ID". Este "ID" puede ser que yo quiera que sea privado. En ese caso le voy a poner "private". De esta forma voy a indicar que solamente se podrá acceder al atributo "ID" dentro de esta misma clase. Es decir, desde la clase "Profesor" o desde el programa principal no voy a poder acceder a este atributo. Para comprobarlo, voy a guardar. Voy a ir al programa principal y voy a crear lo siguiente: Un nuevo objeto de tipo "Profesor" que se llame "nuevoProfesor". Aquí es donde indico que va a ser un objeto de tipo "Profesor". Y posteriormente voy a tratar de acceder al "ID" y voy a intentar modificarlo: Voy a poner "id = 0". Me marca un error y me indica que "Empleado.id" no es accesible debido a su nivel de protección. Si regreso a la clase "Empleado" y pongo el atributo como "public" vemos que en el programa principal deja de marcar el error. ¿Por qué? Porque el atributo "ID" lo he marcado como público y de esta forma he podido acceder y modificarlo desde el programa principal. Cabe mencionar que esta no es la forma correcta o recomendada de acceder a los atributos de un objeto. En este momento lo estamos haciendo así únicamente para entender los conceptos de modificadores de acceso. Cómo puedo acceder o no acceder a los atributos dependiendo del modificador de acceso que haya definido. Para no acceder a los elementos o atributos de un objeto directamente como lo estamos haciendo de esta forma vamos a utilizar los descriptores de acceso y las propiedades. Por ahora vamos a continuar con los modificadores de acceso. Para comprobar otro nivel de acceso o modificador de acceso voy a crear dentro de este "namespace" una clase cuyo único fin va a ser probar. Por lo tanto le voy a poner de nombre "MiClasePrueba". Ahora voy a definir un atributo privado de tipo entero y le voy a poner de nombre "pruebaA". Vamos a comprobar qué es lo que pasa si quiero acceder a este atributo "pruebaA" desde una clase derivada. Para ello voy a indicar que "Program" va a heredar de "MiClasePrueba". De esta forma indico que "Program" va a ser una clase derivada de la clase "MiClasePrueba". Voy a comentar este código que por el momento no nos va a servir. Voy a crear un nuevo objeto de tipo "Program" y le voy a poner "prueba". Voy a intentar acceder al atributo "pruebaA". De hecho vemos que aquí ni nos aparece ese atributo. Voy a intentar ponerlo de cualquier forma. Voy a decir que es igual a 1. Y aquí me está marcando un error. Me indica que el atributo "pruebaA" no es accesible debido a su nivel de protección. De esta forma comprobamos que con un modificador de acceso "private" no podemos acceder al atributo desde otra clase. Únicamente vamos a poder acceder desde la misma clase donde ha sido declarado el atributo. Si cambiamos este modificador de acceso por "protected" inmediatamente nos quita el error ya que el modificador de acceso "protected" permite acceder a un atributo desde su clase derivada. Es decir, hemos accedido al atributo de la clase "MiClasePrueba" desde su clase derivada "Program".

C#: Programación orientada a objetos

Conoce a fondo el paradigma de programación orientado a objetos, partiendo de los conceptos principales y la teoría para posteriormente aplicarlo en el código con Visual Studio C#.

2:22 horas (31 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:5/04/2017

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.