Estructura de datos y Programación / Programación I
Tema: Programación Orientada a Objetos Ing. Analia Méndez – Ing. Raquel Zarco Año: 2012
¿Qué es Programación Orientada a Objetos (POO)? • Es un paradigma de programación que usa objetos y
sus interacciones, para diseñar aplicaciones y programas informáticos. • La Programación Orientada a Objetos permite describir el problema en términos del problema y no en términos de la computadora donde la solución será ejecutada. • La Orientación a Objetos proporciona al programador conceptos y herramientas para modelar y representar elementos del espacio del problema a resolver. • A los elementos del espacio del problema y sus representaciones en el espacio de solución se los denomina OBJETOS.
En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar un auto en POO El auto es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades. En POO el auto sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.
Propiedades del modelo objeto son: Abstracción Encapsulamiento Herencia Polimorfismo
Abstracción Propiedad que permite representar las características
esenciales de un objeto. Consiste en describir una entidad del mundo real y utilizar esta descripción en un programa. La generalización conceptual de los atributos y comportamiento de un determinado conjunto de objetos es la CLASE. La clase se define como una descripción abstracta de un
grupo de objetos, cada uno de los cuales se diferencia por su estado especifico y por la posibilidad de realizar una serie de operaciones. Por ejemplo: una lapicera es un objeto que tiene un estado (lleno o vacio) y sobre el cual se pueden realizar operaciones como escribir, poner/ quitar capuchón, etc.
Encapsulamiento y ocultamiento Es la propiedad que permite asegurar que el contenido
de la información de un objeto esta oculta al mundo exterior: el objeto A no conoce lo que hace el objeto B y viceversa. La información que cada objeto posee solo es accesible y modificable por el mismo. La clase representa la encapsulación de una abstracción.
Herencia Una clase puede tener sus propios atributos y
operaciones adicionales a lo heredado. Las clases se disponen en una jerarquía, donde una clase hereda todos los atributos y operaciones de las clases superiores en la jerarquía.
Polimorfismo Es la propiedad que permite enviar el mismo mensaje a
objetos de diferentes clases , cada uno de ellos responde a ese mismo mensaje de modo distinto dependiendo de su implementación. Ejemplo: polimorfismo implica tomar un objeto de un tipo mamífero por ejemplo e indicarle que ejecute comer, esta acción se ejecutara de forma diferente según sea el objeto mamífero al que se aplica.
Ejemplo
Elementos fundamentales Clase Objeto Mensaje Atributo Método
Instancia
Clase Es un molde de objetos que tienen igual característica,
responden a los mismos mensajes y se comportan ante ellos de la misma manera. Los objetos : son instancias de la clase Clase Perro objetos Pluto y Lasie Nombre AñoNac Raza Cant_patas
Pluto 1950 …. 4
Lasie 1930 …. 4
Objetos Una entidad: cosa tangible y/o visible (camión) Una transacción: Algo que puede comprenderse
intelectualmente. (proceso)
Una abstracción: una entidad software. (lista)
Características de un objeto Un objeto tiene: Identidad: un identificador unívoco. Estado: un conjunto de propiedades (atributos). Comportamiento: un conjunto de operaciones (métodos). Objeto = Identidad + Comportamiento + Estado
Estructura de un objeto
Ejemplo Práctico
Ejemplo de clase y objeto
Clases vs. Objetos Clase: Un patrón para la definición del estado y el comportamiento de un tipo particular de objetos. Todos los objetos de una clase dada son idénticos en estructura y comportamiento, pero tienen identidad única. Objeto (instancia): Pertenece a una clase en particular Los objetos son creados y destruidos en tiempo de ejecución. Residen en el espacio de memoria.
Instancia Instancia es el término utilizado para referirse
a un objeto que pertenece a una clase concreta. Se dice que un objeto es la instancia de una clase. La acción de crear un objeto a partir de una clase se llama instanciar.
Definición de atributo Es una característica fundamental de cada objeto de una
clase. Una clase puede definir un cierto número de atributos estáticos. Todos los atributos tienen algún valor. Este valor puede ser una cantidad, una relación con otro objeto, etc…
Definición de método Es una acción que se realiza sobre un objeto para consultar o
modificar su estado.
Tipos de operaciones: Modificador (setter): altera el estado de un objeto. Selector (getter): accede al estado de un objeto sin alterarlo. Iterador: permite acceder a todas las partes de un objeto. Constructor: crea un objeto e inicializa su estado. Destructor: limpia el estado de un objeto y lo destruye. Propósito general: la lógica del programa
Mensaje Un Mensaje es la transmisión de información de un objeto a otro.
Llamadas a métodos: un objeto A realiza una llamada a un método de un objeto B. Esto significa que dentro del código de un método de un objeto A, se está llamando a un método del objeto B. Esta es la forma más común del paso de un mensaje. Convoca al método OBJETO B
OBJETO A
Devuelve el resultado
UML(Unified Modeling Languaje) Es un lenguaje de modelado que ha sido diseñado para la
traducción de modelos de aplicaciones a lenguajes de programación. El análisis y diseño de una aplicación Orientada a Objetos
necesita de una notación grafica que represente los elementos de la P.O.O. El método mas utilizado es el UML.
Definición de Objeto por autores del UML “Un objeto se caracteriza por un número de operaciones y un estado que recuerda el efecto de estas operaciones” Ivar Jacobson
“Un objeto tiene un estado, comportamiento e identidad; la estructura y comportamiento de objetos similares se definen en sus clases comunes” Grady Booch
“Una manifestación concreta de una abstracción; una entidad con una frontera e identidad bien definidas que encapsulan estado y comportamiento; una instancia de una clase”. Jame Rumbaugh
Notación grafica de una clase
Ejemplo de una clase
Plataforma Java Java fue diseñado por James Gosling, de Sun Microsystems, en 1995. Es un lenguaje orientado a objetos, independiente de la plataforma, por lo que un programa hecho en Java se ejecutará igual en un PC con Windows que en una PC basada en Linux. Para el desarrollo de programas que incluye varios componentes que se interconectan entre si utilizaremos Java EE (Java Platform, Enterprise Edition) o J2EE — orientada a entornos distribuidos empresariales o de Internet.
Para poder ejecutar cualquier aplicación Java en cualquier sistema operativo es necesario tener instalado el JRE (Java RunTime Environment - Entorno de desarrollo de Java). Se compone de herramientas necesarias como la máquina virtual de java (java.exe) y el conjunto de librerías estándar de Java. El JDK incluye a JRE. SDK (Software Development Kit - kit de software de desarrollo),a partir de la versión 1.2 de Java al JDK se le empezó a llamar de esta manera.
Desarrollo en Java Fase 1: Edición: editar y crear un código (.java)
Fase 2: Compilación: editar y corregir errores.(.class) Fase 3: Cargador de Clases Fase 4: Verificación del ByteCode Fase 5: Ejecución: el byte código es ejecutado por el
interprete de java(JVM) Maquina Virtual Java Fase 6: Depuración: si el código no funciona correctamente se ejecuta el programa paso a paso y examinar el efecto de las instrucciones.
Entornos de Desarrollo (Interface Developement Environment, IDE) Java no cuenta con un entorno de desarrollo propio, por esa razón, se puede utilizar desde un bloc de notas hasta entornos de desarrollo avanzados como NetBeans. Netbeans es un poderoso entorno de desarrollo que permite desarrollar aplicaciones complejas con interacción web, UML, base de datos, aplicaciones para telefonía móvil e inclusive Inteligencia Artificial (IA). NETBEANS 7.1 es un producto libre y gratuito sin restricciones de uso.
EJERCICIOS Determinar Atributos y Comportamientos para los objetos PAGINA AUTO CUENTA BANCARIA MATRIZ FIGURA Establecer la jerarquia de clases Vehiculo. Camion. Auto. Colectivo. Sedan. Utilitario. Fruta- manzana- pera- durzno-