1.1 ELEMENTOS DEL MODELO
DE OBJETOS CLASES, OBJETOS, ABSTRACCIÓN, MODULADOR, ENCAPSULAMIENTO, HERENCIA
Y POLIMORFISMO.
CLASES
Clase a la declaración o
abstracción de un objeto cuando se programa según el paradigma de orientación a
objetos. Son los datos y operaciones
comunes a un conjunto de objetos que comparten características.
Por ejemplo, nuestro
teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en
términos de la programación orientada a objetos, podemos decir que nuestro
objeto celular es una instancia de una clase conocida como "celular".
Los celulares tienen
características (marca, modelo, sistema operativo, pantalla, teclado, etc.) y
COMPORTAMIENTOS (hacer y recibir llamadas, enviar mensajes multimedia,
transmisión de datos, etc.).
OBJETOS
Entidad compuesta de datos y
operaciones que realizan sobre esos datos. Mantienen unas características en
una o más variables e implementan su comportamiento con métodos. Es un programa
de computadora que consta de un estado y de un comportamiento, que a su vez
constan respectivamente de datos almacenados y de tareas realizables durante el
tiempo de ejecución. Un objeto puede ser creado instanciando una clase, como
ocurre en la programación orientada a objetos, o mediante escritura directa de
código y la replicación otros objetos, como ocurre en la programación basada en
prototipos.
Todo el programa está
construido en base a diferentes componentes (Objetos), cada uno tiene un rol
específico en el programa y todos los componentes pueden comunicarse entre
ellos de formas predefinidas.
Todo objeto del mundo real
tiene 2 componentes: características y comportamiento.
Por ejemplo, los automóviles
tienen características (marca, modelo, color, velocidad máxima, etc.) y
comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar
llantas, etc.).
ABSTRACCIÓN
Consiste en captar las
características esenciales de un objeto, así como sus comportamientos, es
decir, es un método por el cual obtenemos una determinada entidad de la
realidad; sus características y funciones que desempeñan, estos son
representados en clases por medios de atributos y métodos de dicha clase.
La abstracción consiste en
aislar un elemento de su contexto o del resto de los elementos que lo
acompañan. En programación, el término se refiere al énfasis en el "¿qué
hace?" más que en el "¿cómo lo hace?" (Característica de caja
negra).
Por ejemplo, volvamos al
ejemplo de los automóviles, ¿Qué características podemos abstraer de los
automóviles? O lo que es lo mismo ¿Qué características semejantes tienen todos
los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso,
llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los
automóviles podrán acelerar, frenar, retroceder, etc.
En los lenguajes de
programación orientada a objetos, el concepto de Clase es la representación y
el mecanismo por el cual se gestionan las abstracciones.
Por ejemplo:
public class Automovil {
// variables
// Métodos
}
MODULARIDAD
Es la propiedad que tiene un
sistema que ha sido descompuesto en un conjunto de módulos cohesivos y
vagamente convexos, cada módulo se puede compilar separadamente aunque tenga
conexiones con otros módulos.
En un diseño estructural,
modularizacion comprende el agrupamiento significado de subprogramas en diseño
orientado a objetos, la modularidad debe ceñirse a la estructura lógica elegida
en el proceso de diseño.
Dividir un programa en
componentes individualizados reduce en alguna manera su complejidad; C++ separa
los módulos interface de los módulos con implementación.
Mediante la modularidad, se
propone al programador dividir su aplicación en varios módulos diferentes (ya
sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un
sentido propio. Esta fragmentación disminuye el grado de dificultad del
problema al que da respuesta el programa, pues se afronta el problema como un
conjunto de problemas de menor dificultad, además de facilitar la comprensión
del programa.
ENCAPSULAMIENTO
Es el ocultamiento de
información que no es necesario saber un determinado usuario, la utilidad del
encapsulamiento va por la facilidad para manejar la complejidad, donde solo se
conoce el comportamiento pero no los detalles internos, aquí lo que interesa es
¿Qué hace la clase? Pero no el ¿Cómo lo hace?
Se denomina encapsulamiento
al ocultamiento del estado, es decir, de los datos miembros de un objeto de
manera que sólo se pueda cambiar mediante las operaciones definidas para ese
objeto.
El encapsulamiento consiste
en unir en la Clase las características y comportamientos, esto es, las
variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes
estructurados esto era imposible. Es evidente que el encapsulamiento se logra
gracias a la abstracción y el ocultamiento que veremos a continuación.
La utilidad del
encapsulamiento va por la facilidad para manejar la complejidad, ya que
tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento
pero no los detalles internos, y esto es conveniente porque nos interesará será
conocer qué hace la Clase pero no será necesario saber cómo lo hace.
HERENCIA
Esto significa que una
subclase, aparte de los atributos y métodos propios, tiene incorporados los
atributos y métodos heredados de la superclase. De esta manera se crea una
jerarquía de herencia. Por ejemplo, imaginemos que estamos haciendo el análisis
de un Sistema para una tienda que vende y repara equipos celulares.
POLIMORFISMO
Se basa en utilizar varios
métodos con el mismo nombre y con diferente funcionalidad, un objeto
polimorfismo es una entidad que puede contener valores de diferentes tipos
durante la ejecución de un programa.
El polimorfismo se refiere a
la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede
ser heterogénea. El único requisito que deben cumplir los objetos que se
utilizan de manera polimórfica es saber responder al mensaje que se les envía
El polimorfismo se refiere a
la propiedad por la que es posible enviar mensajes sintácticamente iguales a
objetos de tipos distintos. El único requisito que deben cumplir los objetos
que se utilizan de manera polimórfica es saber responder al mensaje que se les
envía.
La apariencia del código
puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de
las obvias diferencias sintácticas.
Por ejemplo, en un lenguaje
de programación que cuenta con un sistema de tipos dinámico (en los que las
variables pueden contener datos de cualquier tipo u objetos de cualquier clase)
como Smalltalk no se requiere que los objetos que se utilizan de modo
polimórfico sean parte de una jerarquía de clases.
FUENTES BIBLIOGRÁFICAS
No hay comentarios:
Publicar un comentario