[Clase 3] Repaso POO
description
Transcript of [Clase 3] Repaso POO
Repaso Programación Repaso Programación orientada a objetosorientada a objetos
CORPORACIÓN UNIVERSITARIA CORPORACIÓN UNIVERSITARIA ADVENTISTAADVENTISTA
POO 2POO 2
Juan Guillermo MontoyaJuan Guillermo Montoya
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Estilo de programación que utiliza comoelemento esencial los OBJETOS.
Un “paradigma” de programación Una forma de pensar los problemas Una potente disciplina de diseño Una moderna técnica de programación
¿Qué es la Programación orientada a objetos?
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Características principales de la programación orientada a objetos
Abstracción Encapsulamiento Herencia Polimorfismo
Abstracción
la abstracción permite enfocarte en el objetivo (El qué) y eliminar el detalle del mismo (El como), solo así se puede lograr entender la composición del sistema en términos de funciones, servicios o características.
Visión simplificada de la realidad
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Encapsulamiento
Proceso de ocultar todos los detalles de un objeto que no contribuyen a sus características esenciales.
ir
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Abstracción vs Encapsulación Abstracción: nos centramos en la visión externa. Encapsulación: nos centramos en la visión interna.
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Encapsulamiento
Abstracción
Circulo 1
Circulo 2 Circulo 3
Principal
Ejemplo de Encapsulamiento
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Como aplicar encapsulamiento
Si se desea flexibilidad, buen mantenimiento y extensibilidad, nuestro diseño en el código debe de incluir encapsulamiento, para ello debemos de hacer lo siguiente:
Mantener las variables de instancia protegidas (puede ser con un modificador de acceso, p.ej., private)
Hacer métodos de acceso públicos para forzar al acceso a las variables por medio de dichos métodos en lugar de acceder directamente.
Utilizar las convenciones de código para los nombres de los métodos, p. ej., set y get.
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Que es la herencia?
Es un mecanismo para compartir atributos y métodos entre clases.
Por la herencia se forman jerarquías de clases (superclases y subclases).
Las subclases heredan los atributos y métodos de las superclases.
Relación “es un”. Permite la reutilización de código.
Herencia
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Clase base
Clases derivadas Subclases
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Cual método se llama?El mas bajo siempre gana
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Recordar que la relación de herencia es en una sola dirección
El lobo es un canino pero el canino no es un lobo
Mantengan el contrato : override
(override o overload?)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – POOPOO II – POO
Polimorfismo
Caracteristica donde la misma operación puede comportarse diferente en clases distintas.
El polimorfismo está muy ligado a la herencia.
Distintas instancias del mismo tipo interpretan el mismo mensaje en diferentes formas.
Consiste en definir métodos distintos, que comparten el mismo nombre, pero que se aplican a clases diferentes
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Se imaginan el potencial?
Con el principio de polimorfismo se puede escribir un código que no tiene que cambiar así se incluyan nuevas tipos de subclases en el programa (Reuso).
La única restricción es aplicar correctamente los principios.
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Ventajas de la Programación Orientada a Objetos
La reutilización de código: Ahorra tiempo en el desarrollo de
programas. Se utiliza software que ya ha sido
probado. Fácil mantenimiento y depuración de
programas. Extensibilidad: posibilidad de ampliar la
funcionalidad de la aplicación de manera sencilla.
Modularidad y encapsulación: el sistema se descompone en objetos con unas responsabilidades claramente especificadas.
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
La POO debe producir software con las siguientes características:
Confiable ¿Cuándo fue la última vez que su televisor se estropeó?
Reutilizable ¿Un ingeniero eléctrico inventa un tipo nuevo de resistencia
cada vez que diseña un circuito? Los programadores continúan “reinventando la rueda”.
Mantenible Entre 60 y 80% del tiempo invertido en un programa se emplea
en el mantenimiento. ¡El desarrollo constituye sólo 20% de la ecuación!
Extensible El software no es estático, necesita cambiar para ser útil. La POO proporciona al programador diversas características
para extender el código: la herencia, el polimorfismo, el reemplazo de métodos, la delegación y los patrones de diseño.
Ventajas de la Programación Orientada a Objetos