DPRN2_U1_A1_ROAG
Short Description
Download DPRN2_U1_A1_ROAG...
Description
Programación .NET II Unidad 1. Actividad 1. Encapsulamiento
Unidad 1. La libertad: facultad inherente a todo ser humano
Encapsulamiento
Unidad 1
Actividad 1 NOMBRE: Roberto Álvarez Granados MATRÍCULA: AL12501836 CARRERA: Ingeniería en Desarrollo de Software
1
Programación .NET II Unidad 1. Actividad 1. Encapsulamiento
Unidad
Como ahora sabes la encapsulación se logra mediante el manejo de los cuatro alcances o niveles de encapsulamiento de CSharp: public, private, protected, internal, y cada uno permite que el encapsulamiento se concrete de forma 1. ordenada. La libertad: facultad a uso todo ser humano En esta actividadinherente identificarás el y los alcances de cada uno, para ello: 1. Elabora un cuadro comparativo donde expongas el uso de cada uno de los niveles de acceso o alcances, acompañándolos de ejemplos donde se muestre el alcance de cada uno. Nivel
Público
Public
Interno
Internal
Protegido
Protected
Privado
Private
Nivel Público
Descripción
Accesibilidad Predeterminada
Cualquier función de cualquier objeto puede acceder a los datos o métodos de una clase que se define con este nivel de acceso. Este es el nivel de protección de datos más bajo El acceso a los datos sólo está permitido al proyecto actual, es decir, a la clase que se está compilando. Es un acceso a los datos restringidos, se hereda pero no se puede manipular desde afuera. El acceso a los datos está restringido, solo pueden ser modificados por los métodos de la clase que se está compilando. Este es el alcance más alto de protección de datos.
Private
C#
Ejemplo En el siguiente ejemplo, se declaran dos clases, PointTest y MainClass. El acceso a los miembros públicos x e y de PointTest se realiza directamente desde MainClass. class PointTest
NOMBRE: Roberto Álvarez Granados MATRÍCULA: AL12501836 CARRERA: Ingeniería en Desarrollo de Software
2
Programación .NET II Unidad 1. Actividad 1. Encapsulamiento { public int x; public int y; } Unidad 1. La libertad: facultad inherente a todo ser humano class MainClass4 { static void Main() { PointTest p = new PointTest(); // Direct access to public members: p.x = 10; p.y = 15; Console.WriteLine("x = {0}, y = {1}", p.x, p.y); } } // Output: x = 10, y = 15
Interno
Este ejemplo contiene dos archivos, Assembly1.cs y Assembly1_a.cs. El primer archivo contiene una clase base interna, BaseClass. En el segundo archivo, un intento de crear instancias BaseClass generará un error. // Assembly1.cs // Compile with: /target:library internal class BaseClass { public static int intM = 0; } // Assembly1_a.cs // Compile with: /reference:Assembly1.dll class TestAccess { static void Main() { BaseClass myBase = new BaseClass(); }
// CS0122
}
Protegido Se puede obtener acceso a un miembro protegido de una clase base en una clase derivada sólo si el acceso se realiza a través del tipo de la clase derivada. Por ejemplo, considere el siguiente segmento de código: class A { protected int x = 123; } class B : A { static void Main() { A a = new A(); B b = new B();
NOMBRE: Roberto Álvarez Granados MATRÍCULA: AL12501836 CARRERA: Ingeniería en Desarrollo de Software
3
Programación .NET II Unidad 1. Actividad 1. Encapsulamiento
Unidad 1. La libertad:
// Error CS1540, because x can only be accessed by // classes derived from A. // a.x inherente = 10; facultad a todo ser humano // OK, because this class derives from A. b.x = 10; }
}
Privado
En este ejemplo, la clase Employee contiene dos miembros de datos privados, name y salary. Como miembros privados, sólo pueden tener acceso a ellos el método miembro. Los métodos públicos denominados GetName y Salary se agregan para permitir un acceso controlado a los miembros privados. Se obtiene acceso al miembro name a través de un método público y al miembro salary a través de una propiedad pública de sólo lectura. class Employee2 { private string name = "FirstName, LastName"; private double salary = 100.0; public string GetName() { return name; } public double Salary { get { return salary; } } } class PrivateTest { static void Main() { Employee2 e = new Employee2(); // The data members are inaccessible (private), so // they can't be accessed like this: // string n = e.name; // double s = e.salary; // 'name' is indirectly accessed via method: string n = e.GetName(); // 'salary' is indirectly accessed via property double s = e.Salary; } }
NOMBRE: Roberto Álvarez Granados MATRÍCULA: AL12501836 CARRERA: Ingeniería en Desarrollo de Software
4
Programación .NET II Unidad 1. Actividad 1. Encapsulamiento 2. Guarda tu actividad con la nomenclatura DPRN2_U1_A1_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por tu segundo apellido.
Unidad 1. La libertad: facultad inherente a todo ser humano 3. Sube tu archivo a la base de datos.
4. Consulta el documento Criterios de evaluación para la actividad 1 U1, para ver la rúbrica de la actividad y conocer los parámetros de evaluación. Da clic en el ícono para descargar los Criterios de evaluación para la actividad 1 U1. 5. Posteriormente, comenta el cuadro comparativo y los ejemplos de, al menos, dos de tus compañeros(as), respecto a la definición de cada uno de los niveles de encapsulamiento, usos y alcances; así como respecto a la pertinencia de los ejemplos que incluyan. Realiza tus comentarios con respeto y de forma constructiva.
NOMBRE: Roberto Álvarez Granados MATRÍCULA: AL12501836 CARRERA: Ingeniería en Desarrollo de Software
5
View more...
Comments