[Clase 3] Repaso POO

31
Repaso Programación Repaso Programación orientada a objetos orientada a objetos CORPORACIÓN UNIVERSITARIA CORPORACIÓN UNIVERSITARIA ADVENTISTA ADVENTISTA POO 2 POO 2 Juan Guillermo Montoya Juan Guillermo Montoya

description

Principios programación orientada a objetos:

Transcript of [Clase 3] Repaso POO

Page 1: [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

Page 2: [Clase 3] Repaso POO

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?

Page 3: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Características principales de la programación orientada a objetos

Abstracción Encapsulamiento Herencia Polimorfismo

Page 4: [Clase 3] Repaso POO

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

Page 5: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 6: [Clase 3] Repaso POO

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

Page 7: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 8: [Clase 3] Repaso POO

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

Page 9: [Clase 3] Repaso POO

Ejemplo de Encapsulamiento

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 10: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 11: [Clase 3] Repaso POO

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

Page 12: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 13: [Clase 3] Repaso POO

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.

Page 14: [Clase 3] Repaso POO

Herencia

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Clase base

Clases derivadas Subclases

Page 15: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 16: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 17: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 18: [Clase 3] Repaso POO

Cual método se llama?El mas bajo siempre gana

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 19: [Clase 3] Repaso POO

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

Page 20: [Clase 3] Repaso POO

Mantengan el contrato : override

(override o overload?)

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 21: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 22: [Clase 3] Repaso POO

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

Page 23: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 24: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 25: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 26: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 27: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 28: [Clase 3] Repaso POO

POO II – PROGRAMACION OOPOO II – PROGRAMACION OO

Page 29: [Clase 3] Repaso POO

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

Page 30: [Clase 3] Repaso POO

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.

Page 31: [Clase 3] Repaso POO

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