Vous êtes sur la page 1sur 5

DPRN2_U1_A1_RU

MM

PROGRAMACION
.NET II
ACTIVIDAD 1 UNIDAD 1. ENCAPSULAMIENTO.
ALUMNO: RUBEN ANTONIO MENDOZA MIRAMONTES.
MATRICULA: AL12523881.
NIVEL: BLOQUE 2, 2015.
FACILITADOR: BERNARDINO FUENTES SOLAR.
UNAD MEXICO.

Actividad 1. Encapsulamiento.

INTRODUCCION
La encapsulacin se define como el proceso de encerrar uno o ms artculos
dentro de un paquete fsico o lgico'. La encapsulacin, en la metodologa de
programacin orientada a objetos, impide el acceso a los detalles de
implementacin.
La abstraccin y la encapsulacin son caractersticas relacionadas en la
programacin orientada a objetos. Abstraccin permite hacer visible la
informacin pertinente y la encapsulacin permite a un programador para
implementar el nivel deseado de abstraccin.
La encapsulacin se implementa mediante especificadores de acceso. Y el
acceso especificador define el alcance y visibilidad de un miembro de la clase.
C # soporta los siguientes especificadores de acceso:
NIVEL
Publico

C#
Public

Interno

Internal

Protegido

Protected

privado

private

DESCRIPCION
Especificador de acceso pblico permite a una
clase para exponer sus variables miembro y
funciones miembro a otras funciones y objetos.
Cualquier miembro del pblico puede acceder
desde fuera de la clase.
Especificador de acceso interno permite una clase
para exponer sus variables miembro y funciones
miembro a otras funciones y objetos en el conjunto
actual. En otras palabras, cualquier miembro con
especificador de acceso interno se puede acceder
desde cualquier clase o mtodo definido dentro de
la aplicacin en la que el miembro se ha definido.
Es un acceso a los datos restringidos, se hereda
pero no de puede manipular desde afuera.
Especificador de acceso privado permite una clase
para ocultar sus variables miembro y funciones
miembro de otras funciones y objetos. Slo las
funciones de la misma clase pueden acceder a sus
miembros privados. Incluso una instancia de una
clase no puede acceder a sus miembros privados.

PUBLICO
En el siguiente ejemplo, se declaran dos clases, PointTest y MainClass. El
acceso a los miembros pblicos x e y de PointTest se realiza directamente
desde MainClass.
class PointTest
{
public int x;

public int y;
}
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 slo si el acceso se realiza a travs del tipo de la clase
derivada. Por ejemplo, considere el siguiente segmento de cdigo:
class A
{
protected int x = 123;
}

class B : A
{
static void Main()
{
A a = new A();
B b = new B();
// Error CS1540, because x can only be accessed by
// classes derived from A.
// a.x = 10;
// 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, slo pueden tener acceso a
ellos los mtodos miembro. Los mtodos pblicos
denominados GetName y Salary se agregan para permitir un acceso controlado
a los miembros privados. Se obtiene acceso al miembro namea travs de un
mtodo pblico y al miembro salary a travs de una propiedad pblica de slo
lectura. (Vea Propiedades (Gua de programacin de C#) para obtener ms
informacin).
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;
}
}

CONCLUSION
En el diseo de un objeto, se debe pensar en cmo otros podran utilizarlo. En
el mejor de los casos cualquier programa que utilice el objeto estara bien
diseado y el cdigo nunca cambiar. Sin embargo, la realidad es que los
programas cambian a menudo y en un ambiente de equipo muchas personas
tocan el mismo cdigo en un momento u otro. Por lo tanto, es beneficioso para
considerar lo que poda salir mal, as como la imagen prstina de cmo * se
debe utilizar el objeto *.

REFERENCIAS
http://www.tutorialspoint.com/csharp/csharp_encapsulation.htm

https://msdn.microsoft.com/es-es/library/yzh058ae.aspx
https://msdn.microsoft.com/es-es/library/7c5ka91b.aspx
www.cshap-station.com/Tutorial/CSharp/lesson19r

Vous aimerez peut-être aussi