Programación en Java
TemarioTemario
�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 4: Programando en OO�Lección 5: Manejo de excepciones�Lección 6: Usando Collections
Programación en Java
ObjetivosObjetivos
�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.
Programación en Java
Definiciones BásicasDefiniciones Básicas
�La orientación a objetos cuenta con cuatro características:�Abstracción�Encapsulamiento�Encapsulamiento�Herencia�Polimorfismo
Programación en Java
AbstracciónAbstracció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
Programación en Java
AbstracciónAbstracció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.para entenderlo por lo completo.
Programación en Java
AbstracciónAbstracció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.
Programación en Java
EncapsulamientoEncapsulamiento
�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.
Programación en Java
Encapsulamiento VS AbstracciónEncapsulamiento 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
Programación en Java
ObjetosObjetos
�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.comportamiento.
�Por ejemplo: Un perro tiene un tiene estado (nombre, color, raza) y comportamiento (ladrar, traer el periódico, mover la cola ).
Programación en Java
ObjetosObjetos
�Los objetos en software mantienen su estado en una o más variables y su comportamiento lo implementan en métodosimplementan en métodos
Programación en Java
ClasesClases
�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.
Programación en Java
InterfazInterfaz
�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.
Programación en Java
Clases e InterfacesClases 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.mientras que la clase lo hace real.
�Una clase realiza una interfaz si implementa todos los métodos de la interfaz.
Programación en Java
HerenciaHerencia
�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
Programación en Java
PolimorfismoPolimorfismo
�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.clases e interfaces.
�Así, el polimorfismo puede existir teniendo varias clases que hereden de una clase base o realicen una interfaz
Programación en Java
Beneficios del polimorfismoBeneficios 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
Programación en Java
EjemploEjemplo
�Utilizando interfaces podemos cambiar el tipo de conexión rápidamente sólo cambiando la referencia a la interfaz Conexion
ConexionMySQL
c onect ar() : Connec tionc errarConexion()
ConexionPostgreSQL
conectar()cerrarConexion()
Objeto de acceso a datos
Conexion base de datos
conectar() : ConnectioncerrarConexion()
<<Interface>>
<<realiza>> <<realiza>>
+*+1
Programación en Java
Relaciones entre objetosRelaciones entre objetos
�Existen cuatro tipos de relaciones entre objetos:�Dependencia. �Asociación. �Agregación�Agregación�Composición
Programación en Java
DependenciaDependencia
�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
Programación en Java
AsociaciónAsociació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.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.
Programación en Java
AgregaciónAgregació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.relaciones de agregación.
�El objeto existe independientemente del de mayor tamaño.
�Ejemplo: Un desarrollador, puede pertenecer a dos equipos de desarrollo.
Programación en Java
ComposiciónComposició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 �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.
Programación en Java
ResumenResumen
�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 �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.