PROGRAMACION ORIENTADA A OBJETOS
 
Mis aficiones nuevo
EL HOMBRE QUE CALCULABA ( resumen)
EJERCICIOS DE DECISION SIMPLE
BIENVENIDOS A CANDY_LUNA INFORMATIC
TEORIA DE INFORMATICA
TAREA SEIS
DEFINICION DE ALGORITMO
RESOLUCION DE PROBLEMAS
BIOGRAFIAS DE MATEMATICOS
EJERCICIOS SECUENCIALES
MANUAL DEL DFD
EJERCICIOS DE DECISION MULTIPLE
EJERCICIOS DE CICLOS
EJERCICIOS DE FUNCIONES
EJERCICIOS DE ARREGLOS
TAREA SIETE
TAREA UNO
TAREA TRES
Mis aficiones nuevo
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
Programacion orientada a objetos:

La programación orientada al objeto brinda un medio de mejorar la reusabilidad de los
componentes software
Conceptos Fundamentales
Clase y objetos
El cómputo en un sistema orientado al objeto supone la manipulación nde objetos de
cierta clase. Una clase es en realidad un medio de empaquetar un 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
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 lac 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:
1 - Relaciones
2 - Propiedades
3 - Métodos
Cada uno de estos componentes desempeña un papel totalmente independiente:



imagen
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.

imagen
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.

imagen
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.


imagen
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.
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.

imagen