La programación orientada al objeto brinda un medio de mejorar la reusabilidad de los
componentes software.
Conceptos Fundamentales
Clase y objetosEl cómputo en un sistema orientado al objeto supone la manipulación de objetos de cierta clase. Una clase es en realidad un medio de empaquetar un tipo abstracto de dato (TAD). Siendo una forma de implementar un TAD, una clase permite encapsular como una única entidad a los elementos y las rutinas de acceso de la implementación de un TAD. Una clase contiene toda la información para construir ejemplares individuales, ejemplares llamados objetos. Una clase es simplemente la especificación para creae objetos. Un objeto, por el contrario, son las entidades reales que serán manipuladas en el programa.
Cada objeto contiene conjuntos de datos llamados variables miembro o miembros de datos que determinan el estado individual de ese objeto. Además, una clase puede almacenar información compartida por todos los ejemplares de la clase en varibles de clase. Las variables miembro y de clase están empaquetadas de manera que sólo pueden accesadas a través de las rutinas aportadas por la clase, las cuales se denominan funciones miembro Herencia
Cada objeto contiene conjuntos de datos llamados variables miembro o miembros de datos que determinan el estado individual de ese objeto. Además, una clase puede almacenar información compartida por todos los ejemplares de la clase en varibles de clase. Las variables miembro y de clase están empaquetadas de manera que sólo pueden accesadas a través de las rutinas aportadas por la clase, las cuales se denominan funciones miembro Herencia
La posibilidad de estructurar un sistema permite su descomposición en componentes. En base a esta descomposición, el herencia es el medio por el cual los objetos de una clase pueden acceder a variables y funciones miembros contenidas en una clase en una clase previamente definida. Esto da la posibilidad de crear una nueva clase que es una extensión o especialización de una clase existente. Así la nueva clase, llamada clase derivada, se dice que deriva de la clase base. Los lenguaje de orientación al objeto debieran soportar herencia múltiple, donde una clase pueda derivar de varias clases. La clase derivada puede añadir nuevas funciones de la clase base o puedde redefinirla. En
el último caso, se dice que la clase derivada redefine a la función miembro con el mismo nombre en la clase base.
Paso de Mensajes
En orientación al objeto, el cómputo de un sistema evoluciona conforme a mensajes. Los objetos de un sistema manipulan otros objetos enviándoles mensajes solicitando que realicen acciones específicas. Estos mensajes invocan a funciones miembro apropiadas de las clases de objetos. Si una función miembro deseada no se encuentra en la clase inmmediata al objeto, entonces se buscan las funciones miembro en la clase base de ese objeto, y así sucesivamente.
el último caso, se dice que la clase derivada redefine a la función miembro con el mismo nombre en la clase base.
Paso de Mensajes
En orientación al objeto, el cómputo de un sistema evoluciona conforme a mensajes. Los objetos de un sistema manipulan otros objetos enviándoles mensajes solicitando que realicen acciones específicas. Estos mensajes invocan a funciones miembro apropiadas de las clases de objetos. Si una función miembro deseada no se encuentra en la clase inmmediata al objeto, entonces se buscan las funciones miembro en la clase base de ese objeto, y así sucesivamente.
Vinculación Dinámica y Polimorfismo
Si el sistema decide en timpo de compilación qué implementación de la operación va a utilizar, realiza una vinculación estática. Si lo hace en tiempo de ejecución, entonces es una vinculación dinámica.
El polimorfismo se refiere a la posibilidad de que un único mensaje pueda referirse en
tiempo de ejecución a objetos de distintas clases. Típicamente en una clase base se declara una función como polimórfica. Entonces, esta función es redefinida en clases que son derivadas de la clase base. Así, existen funciones e las clases derivadas con el mismo nombre que aquella en la clase base. Si un objeto de la clase base es declarado en un programa, la definición de la función original que se encuentra en la clase base será invocada cuando se llama a la función. Sin embargo, si un objeto de una clase derivada es posteriormente asignado al objeto de la clase base, entonces la definición de la función para la clase derivada será invocada si es llamada la misma función.
Estructura de un Objeto:
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
Si el sistema decide en timpo de compilación qué implementación de la operación va a utilizar, realiza una vinculación estática. Si lo hace en tiempo de ejecución, entonces es una vinculación dinámica.
El polimorfismo se refiere a la posibilidad de que un único mensaje pueda referirse en
tiempo de ejecución a objetos de distintas clases. Típicamente en una clase base se declara una función como polimórfica. Entonces, esta función es redefinida en clases que son derivadas de la clase base. Así, existen funciones e las clases derivadas con el mismo nombre que aquella en la clase base. Si un objeto de la clase base es declarado en un programa, la definición de la función original que se encuentra en la clase base será invocada cuando se llama a la función. Sin embargo, si un objeto de una clase derivada es posteriormente asignado al objeto de la clase base, entonces la definición de la función para la clase derivada será invocada si es llamada la misma función.
Estructura de un Objeto:
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
1 - Relaciones
2 - Propiedades
3 - Métodos
2 - Propiedades
3 - Métodos
Cada uno de estos componentes desempeña un papel totalmente independiente:
Las relaciones permiten que el objeto se inserte en la organización y están formadas esencialmente por punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.
Enclapsulamiento y ocultacion:
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y programas, todos ellos relacionados entre sí, como si estuvieran encerrados conjuntamente en una cápsula. Esta propiedad (encapsulamiento), es una de las características fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores conozcan cómo está distribuida la información o qué información hay disponible. Esta propiedad de los objetos se denomina ocultación de la información.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo que sucede es que las peticiones de información a un objeto. deben realizarse a través de mensajes dirigidos a él, con la orden de realizar la operación pertinente. La respuesta a estas ordenes será la información requerida, siempre que el objeto considere que quien envía el mensaje está autorizado para obtenerla.
Ejemplo De Mensajes: si el objeto pato desea destruir la computadora debe enviar un mensaje al objeto martillo.
El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organización, o incluso a otra organización totalmente diferente que precise de él.
Si el objeto ha sido bien construido, sus métodos seguirán funcionando en el nuevo entorno sin problemas. Esta cualidad hace que la OOP sea muy apta para la reutilización de programas.
Organizacion de los Objetos:
En principio, los objetos forman siempre una organización jerárquica, en el sentido de que ciertos objetos son superiores a otros de cierto modo.
Existen varios tipos de jerarquías: serán simples cuando su estructura pueda ser representada por medio de un "árbol". En otros casos puede ser más compleja.
Organizacion de los Objetos:
En principio, los objetos forman siempre una organización jerárquica, en el sentido de que ciertos objetos son superiores a otros de cierto modo.
Existen varios tipos de jerarquías: serán simples cuando su estructura pueda ser representada por medio de un "árbol". En otros casos puede ser más compleja.
En cualquier caso, sea la estructura simple o compleja, podrán distinguirse en ella tres niveles de objetos.
- La raíz de la jerarquía. Se trata de un objeto único y especial. Este se caracteriza por estar en el nivel más alto de la estructura y suele recibir un nombre muy genérico, que indica su categoría especial, como por ejemplo objeto madre, Raíz o Entidad.
- Los objetos intermedios. Son aquellos que descienden directamente de la raíz y que a su vez tienen descendientes. Representan conjuntos o clases de objetos, que pueden ser muy generales o muy especializados, según la aplicación. Normalmente reciben nombres genéricos que denotan al conjunto de objetos que representan, por ejemplo, Ventana, Cuenta, Fichero. En un conjunto reciben el nombre de clases o tipos si descienden de otra clase o subclase.
- Los objetos terminales. Son todos aquellos que descienden de una clase o subclase y no tienen descendientes. Suelen llamarse casos particulares, instancias o ítems porque representan los elementos del conjunto representado por la clase o subclase a la que pertenecen.
No hay comentarios.:
Publicar un comentario