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