Está en la página 1de 4

Encapsulamiento

Una de las maneras ms eficientes de mantener la seguridad en las


aplicaciones Web y de Escritorio en cualquier lenguaje de programacin
es el Encapsulamiento, adems de brindar seguridad a las aplicaciones
permite tener una organizacin muy precisa a la hora de desarrollar sin
embargo en muchas ocasiones se vuelve tedioso manejar todos los
mtodos de encapsulamiento de un objeto, en especial cuando son
muchos los atributos de la clase.
Empecemos por definir ciertos conceptos bsicos de la programacin
orientada a objetos (POO). Est compuesta por clases, una clase en
trminos coloquiales, es el plano de un objeto, es donde se deben
definir todas las caractersticas de los objetos de la vida real o de
objetos abstractos, en POO siempre se habla de dos conceptos claves:
Atributos y Mtodos.
Atributos: Son las caractersticas de los objetos, por ejemplo, los
atributos de una persona son, nombre, apellidos, nmero de
documento, estatura, color de piel, peso, etctera.
Mtodos: Son las funciones o acciones del objeto en caso de la
persona, los mtodos son, caminar, hablar, rer, pensar, gritar, etctera.
Una de las premisas de POO, es que la mayora, sino todos, los atributos
de un objeto deben ser privados, esto para tener seguridad sobre los
valores del objeto, pero entonces...cmo acceder a los atributos de una
clase?,
la
respuesta,
encapsulamiento,
los
mtodos
de
encapsulamiento se utilizan slo cuando es apropiado entregar los datos
a otro objeto que solicite la informacin. Un ejemplo por favor.
Piensa en tus atributos, tienes nombres, apellidos, bla, bla bla, esto ya
lo habamos dicho, todos esos atributos son privados, pero si son
privados...porque la gente me llama por mi nombre? fcil, por los
mtodos de encapsulamiento que permiten al objeto entregar la
informacin que sea solicitada por otro objeto... sigamos con el ejemplo,
te encuentras en un Bar, a lo lejos en la penumbra vez una sombra que
se acerca a tu mesa, ests slo/a era de esperarse porque nadie te
quiere...(s ests leyendo esto es porque eres programador, los
programadores no tienen amigos, eso todo el mundo lo sabe)...pero la
sombra se sigue acercando, cuando la reducida luz que se encuentra
sobre tu persona, alcanza a iluminar ligeramente al desconocido/a vez
que es lo que estabas esperando, s eres hombre, es la mujer ms

hermosa del mundo y te tiene ganas. S eres mujer es un fulano guapo


que te tiene ganas, l/ella atraves todo el bar para conocer tu atributo
privado nombre, tu utilizas t mtodo de des-encapsulamiento para
entregarle a el/la desconocido/a ese valor...pfff entonces, para qu
encapsulo si al final voy a entregar el valor a cualquier desconocido?.
Imagina la misma escena, slo que esta vez no es el amor de tu vida
sino un ladrn que te va a hacer el paseo millonario y que esta vez no
est interesado en tu nombre sino en tu clave de la tarjeta, tu se lo
entregas?, NO! por eso es importante encapsular los atributos de una
clase, para que los objetos slo puedan entregar los valores que sean
programados por ti y no por nadie ms.
Ahora si, vamos al cdigo, en esta oportunidad voy a utilizar C#, sin
embargo en la mayora de los lenguajes es igual o por lo menos muy
parecido. Sigamos con el ejemplo, voy a usar la clase Persona, que
tendr 3 atributos bsicos:
namespace Encapsulamiento{
class Persona{
//primero que todo definimos los atributos
private string nombre;
private string apellidos;
private int clave;

}
}

Teniendo la clase lista, ahora lo que debemos hacer es generar los


mtodos de encapsulamiento, en C# es muy fcil, en el cdigo se
encuentra la explicacin:

namespace Encapsulamiento
{
class Persona

{
//primero que todo definimos los atributos
private string nombre;
private string apellidos;
private int clave;

//Los mtodos de encapsulamiento NO pueden llamarse igual


//a los atributos, por eso la diferencia est en la mayuscula
public string Nombre
{
//GET es el mtodos que utilizaras para entregar tu nombre al
desconocido
get { return nombre; }
//SET es el mtodo que se utiliza para asignar un valor al
atributo
//cuando naciste tu mam y tu pap utilizarn este bloque para
bautizarte
set { nombre = value; }
}

public string Apellidos


{
get { return apellidos; }
set { apellidos = value; }
}

public int Clave


{
get { return clave; }
set { clave = value; }
}
}
}

También podría gustarte