Clases y Objetos

Cuando se analiza un problema para resolverlo mediante las técnicas de programación estructurada, nos enfocamos en identificar los datos que debemos manipular y las transformaciones que sufren como parte de la solución. Con el paradigma de orientación a objetos, la tarea de análisis se centrará en la identificación de objetos, de sus características y de cómo se relacionan entre sí para resolver el problema. Ya dentro del contexto formal de la teoría de Orientación a Objetos, podemos definir un objeto (parafraseando la definición de James Rumbaugh) como un concepto, abstracción o elemento con significado claro dentro del problema en cuestión (por ejemplo, un empleado). Como tal, un objeto se caracteriza por tener un estado, que es el conjunto de valores de sus propiedades en un momento del tiempo (por ejemplo, el nombre de un empleado, o el monto del sueldo que percibe). Además, todo objeto tiene un comportamiento, es decir, las acciones que puede realizar y que modificarían su estado (por ejemplo, un empleado puede ascender o completar tareas). Por último, un objeto se caracteriza por tener identidad propia, esto es, por más que dos objetos tengan el mismo comporta- miento y el mismo estado, resultan totalmente diferentes e identificables.

Según el diccionario, una clase es un grupo de elementos de un conjunto que tienen características comunes. Las técnicas de orientación a objetos se centran en la identificación de esos elementos comunes entre los objetos para poder agruparlos en clases y, así, manipularlos fácilmente. Podemos decir que una clase es una abstrac- ción de un grupo de objetos, porque no existe por sí sola.

Por ejemplo, pensemos en una mesa. Hay mesas rectangulares, mesas redondas, de madera, de metal, incluso de diferentes colores. Todas son mesas distintas e identificables, es decir: objetos. Sin embargo, podemos verificar que todas tienen los mismos atributos, aunque con distintos valores. Todas tienen un color, un material, una forma; por lo tanto podemos agruparlas bajo un mismo concepto: la mesa. Desde el punto de vista de la orientación a objetos, podemos decir que mesa es una clase.

Una clase es una abstracción de las principales propiedades de los objetos reales.

CLASES E INSTANCIAS
En el mundo de la orientación a objetos, hay dos términos muy usados: clases e instancias. Como vimos, una clase es una abstracción de un objeto de la realidad. La clase es un modelo estático, por lo tanto, para poder interactuar con otros elementos, debemos crear instancias que representen a cada uno de los objetos particulares que, agrupados, forman la clase.

PROPIEDADES Y MÉTODOS

Como decíamos, los objetos poseen atributos y comportamiento. Ya desde el punto de vista de la programación, los atributos de los objetos se traducen en propiedades de las clases que los modelan. El comportamiento en cambio, está representado por procedimientos y funciones dentro de la clase. En la jerga de la programación orientada a objetos, los procedimientos y funciones que creamos dentro de una clase se denominan métodos, y representan el conjunto de actividades que un objeto puede realizar, es decir, su comportamiento. Los libros más puristas dicen que los objetos se relacionan intercambiando mensajes, por lo que el comportamiento de un objeto está determinado por los mensajes que puede enviar y por los que puede aceptar desde otros objetos. Volviendo a la definición de método, justamente, podemos decir que los métodos son los encargados de interceptar y de enviar mensajes desde y hacia otros objetos y, al mismo tiempo, alterar el estado actual del objeto.