3 poo abstraccion modula..herencia

2,469 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,469
On SlideShare
0
From Embeds
0
Number of Embeds
105
Actions
Shares
0
Downloads
116
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Programacion Orientado a Objetos
  • 3 poo abstraccion modula..herencia

    1. 1. Programación Orientada a Objetos ING PEDRO ALVAREZ Ing Pedro Alvarez Sanchez
    2. 2. Características de los Objetos <ul><li>Las Características de los Objetos: </li></ul><ul><li>Abstracción </li></ul><ul><li>Modularidad </li></ul><ul><li>Ocultamiento de la información </li></ul><ul><li>Encapsulación </li></ul><ul><li>Polimorfismo </li></ul><ul><li>Herencia </li></ul><ul><li>Acoplamiento y Cohesión </li></ul><ul><li>Donde cualquier Lenguaje OO debe implementar estos conceptos </li></ul>Ing Pedro Alvarez Sanchez
    3. 3. Abstracción <ul><li>Denota las características esenciales de un objeto que lo distingue de los demás </li></ul><ul><ul><li>Visión simplificada de cierta parte de la realidad. </li></ul></ul><ul><ul><li>La elección de los detalles esenciales es subjetiva. </li></ul></ul><ul><ul><li>La clave de la POO esta en abstraer los métodos y los datos comunes a un conjunto de objetos y almacenarlos en una clase </li></ul></ul><ul><ul><li>Hay que centrarse en lo que es y lo que hace un objeto, antes de decidir como debería ser implementado </li></ul></ul>Ing Pedro Alvarez Sanchez
    4. 4. Modularidad <ul><li>Fragmentar un programa en componentes individuales reduce su complejidad en algún grado. </li></ul><ul><li>Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos coherentes y débilmente acoplados . </li></ul>Ing Pedro Alvarez Sanchez
    5. 5. Características de la modularidad <ul><ul><li>Encapsulamiento </li></ul></ul><ul><ul><li>Ocultamiento de la información </li></ul></ul>Ing Pedro Alvarez Sanchez
    6. 6. <ul><li>Encapsulación y ocultamiento </li></ul><ul><li>Consiste en separar el aspecto externo del objeto, al cual pueden acceder otros objetos, del aspecto interno del mismo, que es inaccesible para los demás. </li></ul><ul><li>Permite tratar a un objeto como una caja negra. </li></ul><ul><li>Permite que se modifique la implementación interna de un objeto sin afectar a los clientes que lo utilizan. </li></ul>Ing Pedro Alvarez Sanchez
    7. 7. Polimorfismo <ul><ul><li>Polimorfismo: “ Un solo mensaje puede producir respuestas diferentes dependiendo del objeto que lo reciba (lo cual se define en la ejecución del sistema)” </li></ul></ul><ul><ul><li>Ligadura temprana : enlaces entre elementos de memoria (datos o funciones) en tiempo de compilación. </li></ul></ul><ul><ul><li>Ligadura tardía : enlaces entre elementos de memoria (datos o funciones) en tiempo de ejecución. </li></ul></ul>Ing Pedro Alvarez Sanchez
    8. 8. Ing Pedro Alvarez Sanchez
    9. 9. Relaciones <ul><li>Las clases no existen aisladas sino que tienen dependencias entre ellas. </li></ul><ul><li>Los distintos tipos de relaciones son: </li></ul><ul><ul><li>Asociación. </li></ul></ul><ul><ul><li>Agregación y Composición. </li></ul></ul><ul><ul><li>Herencia. </li></ul></ul><ul><ul><li>Relaciones dinámicas: Mensajes. </li></ul></ul>Ing Pedro Alvarez Sanchez
    10. 10. Relación de asociación <ul><li>Representa la dependencia más general entre clases. </li></ul><ul><li>Representa una dependencia semántica entre dos clases. </li></ul><ul><li>Por defecto es bidireccional, aunque se puede restringir a una sola dirección. </li></ul><ul><li>Tiene multiplicidad. Es la propiedad que expresa el número de instancias de cada clase que participa en la relación: </li></ul><ul><li>(0..1, 1, 0..*, 1..*) </li></ul>Ing Pedro Alvarez Sanchez
    11. 11. Ejemplo Ing Pedro Alvarez Sanchez
    12. 13. Relación de agregación <ul><li>Es una forma particular de asociación que expresa un acoplamiento mas fuerte entre objetos. </li></ul><ul><li>Indica que los objetos de una clase contienen o están formados por objetos de otras clases. </li></ul><ul><li>Por tanto, un objeto que representa el ‘todo’, está asociado con un conjunto de objetos que representan sus componentes. </li></ul>Ing Pedro Alvarez Sanchez
    13. 14. Relación de composición <ul><li>Se trata de una relación de agregación fuerte. </li></ul><ul><li>Un objeto no puede existir si no existen los objetos de los que está compuesto. </li></ul><ul><ul><li>Composición </li></ul></ul><ul><ul><ul><li>Agregado de objetos para formar otros más complejos </li></ul></ul></ul>Ing Pedro Alvarez Sanchez
    14. 15. Ing Pedro Alvarez Sanchez
    15. 16. Ing Pedro Alvarez Sanchez
    16. 17. Relación de herencia <ul><li>Las clases se disponen en una jerarquía, donde una clase hereda todos los atributos y operaciones de las clases superiores en la jerarquía. </li></ul><ul><li>Una clase puede tener sus propios atributos y operaciones adicionales a lo heredado. </li></ul><ul><li>Una clase puede modificar los atributos y operaciones heredadas. </li></ul>Ing Pedro Alvarez Sanchez
    17. 18. Relación de herencia <ul><li>Las clases por encima en la jerarquía a una clase dada, se denominan superclases o clase base . </li></ul><ul><li>Las clases por debajo en la jerarquía a una clase dada, se denominan subclases. </li></ul><ul><li>Una clase puede ser superclase y subclase al mismo tiempo. </li></ul><ul><li>Tipos de herencia: </li></ul><ul><li>Simple. </li></ul><ul><li>Múltiple </li></ul><ul><li>(no soportada por todos los lenguajes O.O.) </li></ul>Ing Pedro Alvarez Sanchez ClaseBase ClaseDerivada ClaseBase1 ClaseBase2 ClaseDerivada Herencia Simple Herencia Múltiple
    18. 19. Ing Pedro Alvarez Sanchez
    19. 20. Jerarquías entre clases: Ing Pedro Alvarez Sanchez <ul><ul><li>Herencia: </li></ul></ul><ul><ul><ul><li>Clase abstracta: clase que se introduce para construir otras clases aprovechando la programación común a ellas o para la formación de “conjuntos polimórficos”. </li></ul></ul></ul><ul><ul><ul><li>Las clases abstractas no tienen instancias, tienen definidos mensajes a los que pueden responder más no cómo responder exactamente. </li></ul></ul></ul><ul><ul><ul><li>Anulación/Sustitución/sobre-escritura: si una propiedad definida en una clase se redefine en una subclase. </li></ul></ul></ul>
    20. 21. Sobrecarga <ul><li>Sobrecarga: </li></ul><ul><ul><li>La idea de la sobrecarga es usarla tal como lo hacemos con nuestro lenguaje natural, como por ejemplo las expresiones tomar agua, tomar del pelo, tomar medidas, tomar por hecho, tomar el poder, … </li></ul></ul><ul><ul><li>En software métodos con el mismo nombre y diferente signatura.(tipos y/o número de parámetros de entrada) </li></ul></ul><ul><ul><li>Ejmplo: int sumar(int, int), int sumar(int, int, int) y sumar(float, float) </li></ul></ul>Ing Pedro Alvarez Sanchez

    ×