Horario: 3:00 PM 7:00PM
Temario Lección 1: Orientación a objetos Lección 2: Creando una aplicación Java Lección 3: Creando Clases Lección 4: Programando en OO Lección 5: Manejo de excepciones Lección 6: Usando Collections
Lección 1: Orientación a objetos 1. Definiciones básicas
Objetivos Conocer los conceptos básicos necesarios para entender el paradigma de orientación a objetos Definir las características que definen a la Definir las características que definen a la orientación a objetos.
Definiciones Básicas La orientación a objetos cuenta con cuatro características: Abstracción Encapsulamiento Herencia Polimorfismo
Abstracción Es una simplificación o modelo de un concepto complejo, proceso o una objeto del mundo real. La abstracción nos permite simplificar nuestro La abstracción nos permite simplificar nuestro entendimiento del mundo así que ese entendimiento es practico sin llegar a abrumarnos
Abstracción Una buena abstracción nos permite acentuar las características y comportamiento relevante de algún objeto, el cual puede ser muy complejo para entenderlo por lo completo.
Abstracción En que nos ayuda la abstracción? Nos permite entender cual es la interacción de un conjunto de partes que conforma un modelo de mayor escala. En la orientación a objetos a ese conjunto de partes se les conoce como objetos.
Encapsulamiento Especifica los datos y el comportamiento lógico 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.
Encapsulamiento VS Abstracción El encapsulamiento puede considerarse lo opuesto de la abstracción. La abstracción remarca los aspectos importantes de un objeto El encapsulamiento oculta los detalles internos de un objeto
Objetos Son la llave para entender la orientación a objetos. Los objetos en software son modelados partiendo de que los objetos de la realidad tienen estado y comportamiento. Por ejemplo: Un perro tiene un tiene estado (nombre, color, raza) y comportamiento (ladrar, traer el periódico, mover la cola ).
Objetos Los objetos en software mantienen su estado en una o más variables y su comportamiento lo implementan en métodos
Clases Una clase es un conjunto de objetos que tienen algo en común. Una clase captura una abstracción particular y Una clase captura una abstracción particular y provee una platilla para la creación de objetos.
Interfaz Define un conjunto de comportamientos relacionados, pero no especifica la implementación del comportamiento. Mas específicamente una interfaz especifica la firma de uno o más métodos, los cuales incluyen parámetros, tipo de retorno y excepciones.
Clases e Interfaces Las interfaces definen la abstracción, sin tomar en cuenta los detalles de implementación. Es decir una interfaz define el comportamiento, mientras que la clase lo hace real. Una clase realiza una interfaz si implementa todos los métodos de la interfaz.
Herencia Es la acción 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
Polimorfismo En orientación a objetos se refiere a las múltiples implementaciones de una simple abstracción. La abstracción es capturada en clases e interfaces. Así, el polimorfismo puede existir teniendo varias clases que hereden de una clase base o realicen una interfaz
Beneficios del polimorfismo El polimorfismo tiene dos beneficios principales Permite flexibilidad ilimitada en la ejecución de un sistema. Es decir diferentes implementaciones de una abstracción pueden ser mezcladas en tiempo de ejecución para obtener comportamientos interesantes. El sistema puede ser extensible fácilmente. Si la abstracción del sistema no cambia nuevas implementaciones pueden ser agregadas sin modificar el código que depende de una interfase
Ejemplo Utilizando interfaces podemos cambiar el tipo de conexión rápidamente sólo cambiando la referencia a la interfaz Conexion Objeto de acceso a datos +1 +* <<Interface>> Conexion base de datos conectar() : Connection cerrarconexion() <<realiza>> <<realiza>> ConexionMySQL c onect ar() : Connec tion c errarconexion() ConexionPostgreSQL conect ar() cerrarconexion()
Relaciones entre objetos Existen cuatro tipos de relaciones entre objetos: Dependencia. Asociación. Agregación Composición
Dependencia Es una asociación de corto plazo y se presenta cuando un objeto invoca métodos de otro objeto, con el fin de obtener un servicio de el. Ejemplo: Cuando compramos algo en el supermercado dependemos de un cajero, más sin embargo no es una relación a largo plazo
Asociación Es una asociación a largo plazo y en esta relación un objeto mantiene la referencia hacia otro objeto y puede llamarla cada vez que lo necesite. Ejemplo: Consideremos una persona y su automóvil, mientras la persona recuerde donde está, puede tomar su auto y este lo llevará a donde necesite ir.
Agregación Indica que un objeto es parte de uno de mayor tamaño. El objeto puede pertenecer a una o más relaciones de agregación. El objeto existe independientemente del de mayor tamaño. Ejemplo: Un desarrollador, puede pertenecer a dos equipos de desarrollo.
Composición Indica que un objeto está contenido en uno de mayor tamaño. El objeto contenido sólo puede participar en una relación de composición. No existe independientemente del objeto de mayor tamaño Ejemplo: Los botones de una calculadora, estos sólo pueden pertenecer a una calculadora y si ésta se descompone no es factible quitarlos.
Resumen En esta lección se aprendió a: Relacionar los conceptos de la orientación a objetos. Diferenciar una clase y una interfaz y cual es la finalidad de cada una de ellas. Reconocer las relaciones que se manifiestan en la orientación a objetos.