Lexico
...el poder de lo simple...
Marzo.6.2010

Clases de objetos

Documentación de la plataforma .NET está en éste sitio. Allí hay definidos más de 7000 modelos que le facilitan hacer las aplicaciones)

Una clase es un modelo que describe la composición detallada de un tipo de objetos. Los objetos que se construyan con base en ella tendrán, entonces, exactamente tal conformación: los atributos y los comportamientos en ella definidos. Una clase es sejante a un plano o diseño que guía la construcción de muchos apartamentos. La clase no es el objeto así como el plano no es el apartamento.

Una clase de objetos es una categoría en el lenguaje. Es un mecanismo intelectual para lograr la síntesis de un concepto. Tipifica y representa a una multitud de casos particulares pero semejantes. Permite a la mente del ser humano abstraer. Facilita el manejo genérico de un concepto. Unifica una descripción general.

Instanciar objetos es crear en la memoria RAM objetos con base en un modelo o clase de objetos. Se dice que un objeto es una instancia de una clase.
Modelo o clase de objetos, instanciación y dos objetos creados de esa clase

Ejemplos de uso de clases o instanciaciones (o creación de objetos):

    el objeto x es una Cantidad
    los objetos nombre, apellido son Caracteres
    los objetos baceptar, bcancelar son Button
    el objeto dado es un Random
    el objeto empleado es una Persona

Miembros de una clase

Los miembros de una clase representan datos o información y se organizan bajo dos grandes modalidades:

1. Estructuras de datos, estructuras de información o en general estructuras de representación que permiten conservar los datos e informaciones relevantes de los futuros objetos tales como sus características, cantidades de elementos componentes y estado del objeto o de sus componentes.  A éste tipo de información estática, declarada o explícita se le denomina atributos de los objetos. Permite representar "lo que es" el objeto, es información estática que se describe mediante otros objetos componentes más pequeños . Ejemplo: en un vehículo el número de ruedas, el color, su capacidad de carga, estado legal, estado en mantenimiento, número de puertas....

2. Estructuras lógicas, funciones, rutinas, procedimientos, operaciones, funcionamientos y en general algoritmos que permitan expresar sintética e implícitamente información calculada ante una solicitud o pedido mediante un mensaje. A éste tipo de información se le denomina comportamientos de los objetos. Permite representar "lo que sabe hacer" el objeto, es información que se describe mediante la lógica en programación. Ejemplo: en un vehículo el procedimiento para girar a la derecha, el procedimiento para detener su desplazamiento, procedimiento para detener el motor, procedimiento para dar marcha atrás....
 
 

Nivel de acceso a los miembros

En la definición de una clase se debe establecer el nivel de acceso a los miembros de los futuros objetos:
1. Los miembros declarados públicos permiten que sean utilizados desde el exterior del objeto.
2. Los miembros declarados privados no podrán ser utilizados desde el exterior del objeto. La consecuencia práctica de ésto es que será posible de utilizarse
los miembros privados solo por el programador de la clase y no por el programador que la utilice para crear los objetos.

Uso de los miembros de un objeto

Los objetos creados con base en un modelo o clase de objetos permitirán hacer uso de sus miembros declarados públicos en la clase .

Descripción de una clase de objetos utilizando Lexico:

La forma general que describe una clase de objetos es:
clase Nombre_de_la_clase
{
.../* aquí va el código que describe todos los atributos y comportamientos */
}

Pero como en éste contexto particular de la escritura de códigos Lexico las llaves NO significan una
estructura secuencia se admite que ellas sean suprimidas así:

clase Nombre_de_la_clase
.../* aquí va el código que describe todos los atributos y comportamientos */

En una clase han de ser definidos todos los miembros que conformarán los objetos que se construyan con base en ella: sus atributos y sus comportamientos. También debe ser declarado el tipo de acceso. En Lexico existen dos tipos de acceso: público y privado y por ellos todos los miembros deben ser declarados en una o la otra sección. Miembros privados significa que son útiles, o mejor, accequibles solo desde dentro del mismo objeto. Públicos significa lo contrario, es decir esos miembros son visibles y utilizables desde el exterior del objeto. La consecuencia práctica de ésta característica es que el programador-usuario de una clase puede crear objetos y acceder solamente a sus miembros públicos.

La forma general de una clase será entonces:

clase Nombre_de_la_clase
privados:
/*AQUÍ se definen los atributos (que son otros objetos) */
mensajes:
/*AQUÍ se definen los comportamientos (que son algoritmos) */

públicos:
/*AQUÍ se definen los atributos (que son otros objetos) */
mensajes:
/*AQUÍ se definen los comportamientos (que son algoritmos) */

La sección privados permite plasmar una de las características principales del paradigma: el encapsulamiento de información para protegerla de eventuales daños del programador-usuario de la clase. Ésta sección no es obligatoria pero su inclusión permite, además de proteger información, establecer allí todos los miembros necesarios para el funcionamiento de los objetos y no indispensables para el programador-usuario a quien se le documenta solamente la sección pública o interfaz que es lo verdaderamente útil para él.

Los atributos (objetos componentes dentro de una clase) son visibles en todos los algoritmos de la misma clase a diferencia de los objetos variables que se declaren en algún algoritmo particular de la clase que son accequibles solamente dentro de la secuencia en que han sido creados.


Ejemplo de definición de una clase elemental y de su uso:

clase Básico
publicos:
mensajes:
Básico muestre "Soy un objeto de la clase Básico"
Otro_comportamiento muestre "Estoy ejecutando otro comportamiento"



tarea    /*aplicación del programador-usuario*/
{
muestre "Será creado un objeto a continuación"
el objeto primero es un Básico
primero.Otro_comportamiento
}

Corra el anterior ejemplo y analice sus efectos

Nótese que dentro del modelo o clase de objetos llamado Básico se ha definido un mensaje que "entenderá" o método o algoritmo o comportamiento llamado Básico (igual al nombre del modelo o clase). Es el método que se ejecuta para crear el objeto por parte del programador-usuario de la clase y por esto se conoce como método constructor. El método o algoritmo llamado Otro_comportamiento permitirá al programador-usuario de la clase desencadenar la funcionalidad contenida en ese algoritmo y perteneciente al objeto creado. A la forma de desencadenar acciones de un objeto  primero.Otro_comportamiento se le denomina enviar el mensaje Otro_comportamiento al objeto primero.

Ejemplo1

Relaciones entre los modelos o clases


Las clases, a su vez, pueden relacionarse, es decir, pueden definirse relaciones entre abstraciones. Quizás la relación más utilizada es la herencia, mecanismo que permite llevar a la práctica un concepto pilar promotor de la economía: no solo se puede usar código ya programado en una clase sino que además posibilita la reutilización de ese código con la ventaja adicional de admitir mejoras o particularizaciones, expansiones o adecuaciones a lo ya planteado. Algunos lenguajes identifican ésta característica con términos como expande, hereda, deriva o símbolos como :. Lexico admite utilizar el término derivada_de.



Herencia entre clases
Cómo crear una librería o biblioteca de clases con Lexico