Relaciones y conceptos fundamentales de la programación orientada a objetos

Diapositivas sobre Relaciones & Co. Este documento presenta los conceptos fundamentales de la programación orientada a objetos, definiendo objetos y mensajes. El Pdf, óptimo para estudiantes universitarios de Informática, profundiza en las relaciones entre objetos como agregación, composición, generalización y asociación, con ejemplos visuales para facilitar la comprensión.

Ver más

21 páginas

1
Tema 5.4
Relaciones & Co.
1
Resumen
Un objeto es una “cosa” o “entidad”, algo que
podemos encontrar en el vocabulario del sistema y
que existe en el espacio del problema o en el
espacio de la solución
Tarjeta de crédito
Fichero
Cliente
Figura geom.
Parada de bus
2
2
Un objeto representa una entidad cualquiera,
física, conceptual, o software.
Entidad física
Entidad Conceptual
Entidad Software
Camion
Proceso quimico
Linked List
¿Que es un objeto?
Bank
account
3
¡ Un objeto NO es una estructura de datos !
No se manipula, se le piden servicios
Objeto: mensaje
Rectángulo
Base
Altura
Color
Posición
Orientación
...
Cambiar color
Desplazar
Rotar
Color
Área
...
Cámbiate
de color
Desplázate
Dime de
que color
eres
Dime cual
es tu área
4

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

Resumen de Objetos

1 Resumen . Un objeto es una "cosa" o "entidad", algo que podemos encontrar en el vocabulario del sistema y que existe en el espacio del problema o en el espacio de la solución Parada de bus Tarjeta de crédito Fichero Cliente Figura geom.

Definición de Objeto

2 1¿Que es un objeto? · Un objeto representa una entidad cualquiera, física, conceptual, o software. · Entidad física Camion . Entidad Conceptual Bank account Proceso quimico · Entidad Software . > Linked List

Objeto: Mensaje

3 Objeto: mensaje i Un objeto NO es una estructura de datos ! · No se manipula, se le piden servicios Rectángulo Cámbiate de color Base Altura Color Posición Desplázate Orientación Dime de que color eres Cambiar color Desplazar Rotar Color Área Dime cual es tu área

Resumen de Propiedades del Objeto

4 2Resumen · Un objeto es "algo" extraído del espacio del problema o de la solución. Tiene identidad, estado, y comportamiento . Un atributo es una propiedad del objeto · Una operación (o método) es una función que puede ser llevado a cabo por el objeto . Las operaciones "visibles" forman su interfaz · Un mensaje causa la ejecución de un método · Un objeto es la instancia del una clase · Principio de encapsulación

Relaciones entre Clases

5 Relaciones entre clases

Tipos de Relaciones entre Clases

6 3Relaciones entre clases 1. Asociación 2. Agregación (caso particular de asociación) • Composición (caso particular de agregación) 3. Generalización / especialización 4. Dependencia Los mensajes "viajan" a través de las relaciones => i Si no hay relación no puede haber mensaje !

Asociación

7 Asociación · Una asociación es una relación bidireccional entre pares existente entre dos clases · Se caracteriza por su "multiplicidad" (o sea, cuantos objetos participan en ella), puede tener nombre, sentido preferente (y más "adornos") Clase 1 Clase 2 Una asociación

Ejemplo de Asociación: Director y Escuela

8 4Asociación · Ejemplo: Director Escuela

9 Asociación · Ejemplo: Director Escuela · (UML: lenguaje visual de modelado)

10 5Asociación · Ejemplo: Director Escuela

Ejemplos de Asociación con Multiplicidad

11 Asociación · Ejemplos: Dirige Director Escuela Dirige Director Escuela 1 n Dirige -> Director V Escuela 1 n

Agregación

12 6Agregación · Es un caso especial de asociación · Más "fuerte" · Representa una relación "parte de" entre clases Todo Parte

Ejemplo de Agregación: Motor y Pistón

13 Asociación · Ejemplo: MOTOR PISTON

14 7Asociación · Ejemplo: MOTOR PISTON 1 4 MOTOR PISTON

Diferencia entre Asociación y Agregación

15 Asociación · ¿ qué diferencia hay entre asociación y agregación? · Depende de que/como queremos expresar (modelar) la relación CUERPO BRAZOS CUERPO BRAZOS 1 1 1 2 MARIDO MUJER PAREJA PERSONA 1 n MUJER PAREJA 1 1 MUJER 1 1 MARIDO MARIDO

Agregación y Composición

16 8Agregación/composición . Es un caso especial de agregación: composición · Más "fuerte": · Una parte puede ser incluida en máximo un "todo" · Si el todo deja de existir, también dejan de existir las partes. Todo Parte Pared Ventana · Representa una relación de "existencia"

Ejemplo de Composición: Pareja y Persona

17 Agregación/composición · Es un caso especial de agregación: composición 1 2 PAREJA PERSONA o 1 2 PAREJA PERSONA

Generalización

18 9Generalización · Es una relación "tipo de" Clase 1 atributo1 atributo2 operacion2() operacion 1() Generalization Clase 2

Ejemplo de Generalización: Animal, Gato, Perro

19 Asociación · Ejemplo: Animal Gato Perro

Factorización de Propiedades Comunes

20 10Generalización · La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general Super-clase · Op. inversa: especialización Animal edad ... comer … · Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases (jerarquía) Gato Perro

Sinónimos de Clases en Generalización

21 Sub-clases Generalización · Sinónimos: · clase padre - clase hija · superclase - subclase · clase base - clase derivada

Herencia de Propiedades en Subclases

22 11Generalización · Las subclases heredan propiedades de sus clases padre . es decir, atributos y operaciones (y relaciones) de la clase padre están disponibles en sus clases hijas · Las clases hijas podrán tener más atributos y métodos · Las clases hijas podrán cambiar atributos y métodos (polimorfismo) Animal · Generalización y especialización son transitivas Perro · > puede haber varios "niveles" de sub- clases, o sea una jerarquia de clases Labrador

Herencia Múltiple

23 Generalización · Puede haber herencia múltipla (un objeto hereda de varias clases = es "tipo-de" varias clases) · Debe manejarse con precaución (posible conflictos e nombres y prioridades) · No todos los lenguajes la permiten (Java y Ada por ejemplo no la permiten, C++ sí) Flying Thing Animal Herencia Multiple Airplane Helicopter Bird Wolf Horse

Especialización de Atributos y Métodos

24 12Generalización · Se puede especializar añadiendo/cambiando atributos o métodos Figura · Punto, Circulo y Rectangulo tienen posicion y color, y se pueden mover posicion color ... · Circulo tiene, además, un atributo "radio" mover() ... · Rectangulo tiene, además, atributos base, altura y orientación, y puede rotar Punto dibujar() resize() Circulo radio dibujar() resize() Rectangulo base altura orientación dibujar() rotar() resize() · Una Figura no se puede dibujar ni cambiar de tamaño (¿por qué?)

Polimorfismo

25 · Las funciónes "dibujar" y "resize" en Punto, Circulo y Rectangulo hace cosas diferentes Polimorfismo

Características del Polimorfismo

26 13Polimorfismo · Una característica de una clase puede tomar varias formas · Cada subclase hereda las operaciones y atributos, pero tiene la posibilidad de modificarlos localmente Figura resize() Ejemplo: -resize (cambiar tamaño) Punto resize() Circulo resize() Rectang. resize() No hace nada Cambia el radio Cambia base y altura

Impacto del Polimorfismo en la Interfaz

27 Como afecta a la interfaz? Punto Figura Rectangulo dibujar() mover() resize() rotar() Circulo … La interfaz de la clase base no cambia! "Todas las sub-clases hablan el mismo lenguaje (entienden los mismos mensajes)"

Principio de Sustitución de Liskow

28 14Generalización · El Principio de Sustitución de Liskow (1987) afirma que: "Debe ser posible utilizar cualquier objeto instancia de una subclase en el lugar de cualquier objeto instancia de su superclase sin que la semántica del programa escrito en los términos de la superclase se vea afectado." > cada vez que espero una Figura, puedo usar un Circulo: un Circulo es una Figura ! · El polimorfismo permite redefinir las operaciones en las subclases. · >Es posible introducir involuntariamente incoherencias que violen el principio de sustitución · El polimorfismo que hemos visto siempre debe implementarse teniendo en cuenta este principio

Array Mixto

29 Generalización Array mixto? (de entero, floats, etc ... ) ? int char float double int

30 15Generalización Ejemplo: Array mixto de círculos, rectángulos etc .? Figura Figura Figura Figura Figura

Estructuras Dinámicas

31 Estructuras Dinámicas · Video juego mundo ¿cómo se hace? Programación de Sistemas

32 16Estructuras Dinámicas · Video juego mundo Game_Object

Dependencia

33 Programación de Sistemas Dependencia · Dependencia: una propiedad de una clase afecta a otra A V B

Ejemplo de Dependencia: Estilo de Línea y Figura

34 17Dependencia · Dependencia: una propiedad de una clase afecta a otra EstiloDeLinea Figura grosor discontinua ... dibujar() mover() resize() rotar() .. …

35 Dependencia · Dependencia: una propiedad de una clase afecta a otra Ejemplo: EstiloDeLinea Figura grosor discontinua … .. .. dibujar(e: Estilo de Linea) mover() resize() rotar() …

Clase "Friend" en Dependencia

36 18Dependencia · Dependencia: una propiedad de una clase afecta a otra Ejemplo: declarar una clase "friend" permite a esta acceder a la implementación de la primera, tanto a los atributos y métodos "protegidos" como a los "privados" Friend class: B A B #x:int

Resumen de Relaciones entre Clases

37 Relaciones entre clases 1. Asociación 2. Agregación (caso particular de asociación) 3. Composición (caso part. de agregación ) 4. Generalización / especialización 5. Dependencia Los mensajes "viajan" a través de las relaciones

Ventajas de la Orientación a Objetos

38 19¿Por qué la Orientación a Objetos?

39 ¿Por qué la Orientación a Objetos? . Conceptos comunes de modelado durante el análisis, diseño e implementación (*) · Facilita la transición entre distintas fases · Favorece el desarrollo iterativo del sistema (*) Siempre y cuando su utilice la OO tanto en el modelado como en la implementación

40 20¿Por qué la Orientación a Objetos? · Proximidad de los conceptos de modelado respecto de las entidades del mundo real Siempre y cuando su utilice la OO tanto en el modelado · Mejora captura y validación de requisitos · Acerca el "espacio del problema" y el "espacio de la solución" como en la implementación § Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema Los objetos engloban tanto prop. estáticas como dinámicas . Facilita construcción, mantenimiento y reutilización Gracias a la encapsluación

Principios Básicos de la Orientación a Objetos

41 Principios Básicos de la OO Abstracción Abstraer es encontrar las características esenciales de una entidad · las que la distinguen de todos los demás tipos de entidades Jerarquizar es clasificar en diferentes niveles de abstracción: Jerarquía · elementos con el mismo nivel de abstracción deben estar en el mismo nivel de jerarquía Objetos Modularidad · Modular es romper algo complejo en piezas mas manejables. Encapsular es ocultar los detalles de implementación Encapsulación · Los clientes dependen del interfaz. · Aumenta la flexibilidad

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.