Programación Orientada a Objetos en .NET con C# (3º parte)

30. October 2008 11:00 by Oscar.SS in Desarrollo .NET, Formación  //  Tags: ,   //   Comments (2)

2. Encapsulamiento

b- Clases y objetos


Las clases debemos verlas como moldes o plantillas para crear (instanciar) diferentes objetos a partir de ellas.


Un ejemplo. Supongamos que en una fábrica disponen de un molde para diseñar piezas de diferentes materiales. Este molde puede ser llenado con materia plástica, metal fundido o vidrio líquido, solo es un ejemplo…que ningún Ing.Industrial proteste ;-).


Al enfriarse el molde y su interior, tendremos 3 objetos con medidas idénticas pero cada uno tendrá sus características propias en función del material que se ha utilizado para su construcción.


De la misma forma una clase permite crear (instanciar) diferentes objetos que tendrán los mismos métodos y atributos pero cada uno guardará en la memoria unos datos diferentes.


Nota: He utilizado 2 veces el termino 'instanciar' en similitud con 'crear'. Instanciar un objeto es cargarlo en la memoria.


Otro ejemplo. Para administrar las necesidades de una empresa en relación con sus empleados podemos necesitar una clase llamada 'empleados'. Los atributos de esta clase pueden ser el nombre y la dirección de los empleados. De esta forma necesitaremos métodos para manipular estos atributos, es decir, un método para establecer el nombre y otro para obtenerlo. Y lo mismo para el dato de la dirección. Necesitaremos un método que nos permita cambiar la dirección de un empleado en el caso de que este cambie de domicilio.


Una vez tenemos nuestra clase definida, podemos cargar en memoria (instanciar) distintos objetos de esta clase. Dado que una imagen vale más que mil palabras, veamos el siguiente diagrama.

Diagrama de Clase y Objetos


Como podemos ver en la figura, la clase funciona como un contenedor (encapsulación) permitiendo agrupar tanto los datos (atributos) como los métodos.


También observamos que hemos creado dos objetos diferentes de la misma clase. Cada uno con sus datos particulares de nombre y dirección. Pero en los objetos no hemos incluido los métodos de la clase.


¿Porque?. Muy sencillo, porque cada objeto carga en memoria una copia de los datos propios (atributos) pero los métodos solo existen en la clase y son compartidos por todos los objetos creados a partir de la clase.


Esto quiere decir que cuando Pedro cambie de dirección, hará una llamada al método de la clase 'EstablecerDirección' y guardará los nuevos datos en la memoria del objeto Empleado1. Y exactamente lo mismo para el Empleado2, compartiendo de esta forma los métodos de la clase.


En la primera parte de este estudio dijimos que nuestra filosofía es que ¡todos son objetos!. ¿Pero qué pasa con las clases?, ¿son o no son objetos también?, ¿nos hemos contra decido?.


Las clases también son objetos (el molde de la fábrica es un objeto), de hecho en los lenguajes de .NET todo son objetos. Objetos que heredan de la clase base Object. Pero esto de la herencia lo veremos más adelante. De momento es suficiente con el concepto de que las clases son un tipo de objeto que nos permiten crear otros objetos con características similares.


En el siguiente artículo veremos cómo implementar clases e instanciar objetos por medio del lenguaje C#.

Comments (2) -

Mar
Mar
11/22/2008 12:03:06 PM #

Buen artículo.

Espero con impaciencia la siguiente parte.

Gracias

Oscar.SS
Oscar.SS
1/29/2009 11:13:06 PM #

Hola Mar:

Celebro que te guste.

Gracias a tí también.

Recent Comments

Comment RSS

Month List