Programacin en Java Temario Temario Leccin 1: Orientacin a objetos Leccin 2: Creando una aplicacin Java Leccin 3: Creando Clases Leccin 4: Programando en OO Leccin 4: Programando en OO Leccin 5: Manejo de excepciones Leccin 6: Usando Collections Leccin 1: Orientacin a objetos 1. Definiciones bsicas Programacin en Java Objetivos Objetivos Conocer los conceptos bsicos necesarios para entender el paradigma de orientacin a objetos Definir las caractersticas que definen a la Definir las caractersticas que definen a la orientacin a objetos. Programacin en Java Definiciones Bsicas Definiciones Bsicas La orientacin a objetos cuenta con cuatro caractersticas: Abstraccin Encapsulamiento Encapsulamiento Herencia Polimorfismo Programacin en Java Abstraccin Abstraccin Es una simplificacin o modelo de un concepto complejo, proceso o una objeto del mundo real. La abstraccin nos permite simplificar nuestro La abstraccin nos permite simplificar nuestro entendimiento del mundo as que ese entendimiento es practico sin llegar a abrumarnos Programacin en Java Abstraccin Abstraccin Una buena abstraccin nos permite acentuar las caractersticas y comportamiento relevante de algn objeto, el cual puede ser muy complejo para entenderlo por lo completo. para entenderlo por lo completo. Programacin en Java Abstraccin Abstraccin En que nos ayuda la abstraccin? Nos permite entender cual es la interaccin de un conjunto de partes que conforma un modelo de mayor escala. En la orientacin a objetos a ese conjunto de partes se les conoce como objetos. Programacin en Java Encapsulamiento Encapsulamiento Especifica los datos y el comportamiento lgico que se encuentra oculto en un objeto. El encapsulamiento nos permite hacer sistemas El encapsulamiento nos permite hacer sistemas o componentes mas comprensibles, reusables y extendibles. Programacin en Java Encapsulamiento VS Abstraccin Encapsulamiento VS Abstraccin El encapsulamiento puede considerarse lo opuesto de la abstraccin. La abstraccin remarca los aspectos importantes de un objeto El encapsulamiento oculta los detalles internos de un objeto Programacin en Java Objetos Objetos Son la llave para entender la orientacin a objetos. Los objetos en software son modelados partiendo de que los objetos de la realidad tienen estado y comportamiento. comportamiento. Por ejemplo: Un perro tiene un tiene estado (nombre, color, raza) y comportamiento (ladrar, traer el peridico, mover la cola ). Programacin en Java Objetos Objetos Los objetos en software mantienen su estado en una o ms variables y su comportamiento lo implementan en mtodos implementan en mtodos Programacin en Java Clases Clases Una clase es un conjunto de objetos que tienen algo en comn. Una clase captura una abstraccin particular y Una clase captura una abstraccin particular y provee una platilla para la creacin de objetos. Programacin en Java Interfaz Interfaz Define un conjunto de comportamientos relacionados, pero no especifica la implementacin del comportamiento. Mas especficamente una interfaz especifica la firma de uno o ms mtodos, los cuales incluyen parmetros, tipo de retorno y excepciones. Programacin en Java Clases e Interfaces Clases e Interfaces Las interfaces definen la abstraccin, sin tomar en cuenta los detalles de implementacin. Es decir una interfaz define el comportamiento, mientras que la clase lo hace real. mientras que la clase lo hace real. Una clase realiza una interfaz si implementa todos los mtodos de la interfaz. Programacin en Java Herencia Herencia Es la accin en la que una clase obtiene el comportamiento y atributos definidos en otra clase. A la clase de la que se hereda se le denomina superclase y la clase de la que hereda se le conoce subclase Programacin en Java Polimorfismo Polimorfismo En orientacin a objetos se refiere a las mltiples implementaciones de una simple abstraccin. La abstraccin es capturada en clases e interfaces. clases e interfaces. As, el polimorfismo puede existir teniendo varias clases que hereden de una clase base o realicen una interfaz Programacin en Java Beneficios del polimorfismo Beneficios del polimorfismo El polimorfismo tiene dos beneficios principales Permite flexibilidad ilimitada en la ejecucin de un sistema. Es decir diferentes implementaciones de una abstraccin pueden ser mezcladas en tiempo de ejecucin para obtener comportamientos interesantes. El sistema puede ser extensible fcilmente. Si la abstraccin del sistema no cambia nuevas implementaciones pueden ser agregadas sin modificar el cdigo que depende de una interfase Programacin en Java Ejemplo Ejemplo Utilizando interfaces podemos cambiar el tipo de conexin rpidamente slo cambiando la referencia a la interfaz Conexion ConexionMySQL c onect ar() : Connec ti on c errarConexion() ConexionPostgreSQL conect ar() cerrarConexion() Objeto de acceso a datos Conexion base de datos conectar() : Connection cerrarConexion() <<Interface>> <<realiza>> <<realiza>> +* +1 Programacin en Java Relaciones entre objetos Relaciones entre objetos Existen cuatro tipos de relaciones entre objetos: Dependencia. Asociacin. Agregacin Agregacin Composicin Programacin en Java Dependencia Dependencia Es una asociacin de corto plazo y se presenta cuando un objeto invoca mtodos de otro objeto, con el fin de obtener un servicio de el. Ejemplo: Cuando compramos algo en el supermercado dependemos de un cajero, ms sin embargo no es una relacin a largo plazo Programacin en Java Asociacin Asociacin Es una asociacin a largo plazo y en esta relacin un objeto mantiene la referencia hacia otro objeto y puede llamarla cada vez que lo necesite. necesite. Ejemplo: Consideremos una persona y su automvil, mientras la persona recuerde donde est, puede tomar su auto y este lo llevar a donde necesite ir. Programacin en Java Agregacin Agregacin Indica que un objeto es parte de uno de mayor tamao. El objeto puede pertenecer a una o ms relaciones de agregacin. relaciones de agregacin. El objeto existe independientemente del de mayor tamao. Ejemplo: Un desarrollador, puede pertenecer a dos equipos de desarrollo. Programacin en Java Composicin Composicin Indica que un objeto est contenido en uno de mayor tamao. El objeto contenido slo puede participar en una relacin de composicin. No existe independientemente del objeto de mayor No existe independientemente del objeto de mayor tamao Ejemplo: Los botones de una calculadora, estos slo pueden pertenecer a una calculadora y si sta se descompone no es factible quitarlos. Programacin en Java Resumen Resumen En esta leccin se aprendi a: Relacionar los conceptos de la orientacin a objetos. Diferenciar una clase y una interfaz y cual es la Diferenciar una clase y una interfaz y cual es la finalidad de cada una de ellas. Reconocer las relaciones que se manifiestan en la orientacin a objetos.