[clase 3] repaso poo
DESCRIPTION
Principios programación orientada a objetos:TRANSCRIPT
![Page 1: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/5.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 6: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/7.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 8: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/9.jpg)
Ejemplo de Encapsulamiento
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 10: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/10.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 11: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/12.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 13: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/14.jpg)
Herencia
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
Clase base
Clases derivadas Subclases
![Page 15: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/15.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 16: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/16.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 17: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/17.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 18: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/18.jpg)
Cual método se llama?El mas bajo siempre gana
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 19: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/20.jpg)
Mantengan el contrato : override
(override o overload?)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 21: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/21.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 22: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/23.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 24: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/24.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 25: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/25.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 26: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/26.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 27: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/27.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 28: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/28.jpg)
POO II – PROGRAMACION OOPOO II – PROGRAMACION OO
![Page 29: [Clase 3] Repaso POO](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062421/55cf8ff6550346703ba1bdb8/html5/thumbnails/31.jpg)
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