Programación Orientada a Objetos - Otras relaciones entre clases
8,048 views
24 slides
Mar 07, 2019
Slide 1 of 24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
About This Presentation
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Creado por Ing. Alvaro Enrique Ruano
Size: 424.58 KB
Language: es
Added: Mar 07, 2019
Slides: 24 pages
Slide Content
Otras relaciones en la POO Unidad 2 Ing. Alvaro Enrique Ruano
Contenido Asociaciones Bidireccionales Asociaciones Unidireccionales Clases de Asociación Agregación Composición
Asociaciones Al modelar un sistema basado en POO pueden existir relaciones entre clases, las cuales pueden ser distintas a la herencia. Esas relaciones son llamadas asociaciones. Las asociaciones deben ser modeladas para eliminar la ambigüedad del modelo. Existen cinco tipos que podemos especificar utilizando UML.
Asociaciones Bidireccionales Las dos clases están enteradas de la existencia de la relación. Es el tipo de asociación por defecto. Se utiliza una línea sólida sin indicadores en los extremos. Se puede especificar palabras para describir los roles dentro de la relación. Se puede especificar multiplicidad de la relación.
Asociaciones Bidireccionales
Asociaciones Bidireccionales Ejemplos de indicadores de multiplicidad
Asociaciones Unidireccionales Dos clases están relacionadas, pero solamente una sabe de la existencia de la relación. Estas relaciones permiten desacoplamiento de clases para ofrecer un diseño más flexible a futuros cambios. También se incluye el rol e indicador de multiplicidad, pero solo del lado conocido. Se utiliza una fecha con punta abierta para diferenciarla de las relaciones de herencia e implementación.
Asociaciones Unidireccionales
Agregación Utilizada para modelar la relación entre un todo y sus partes. Indica que una clase pertenece a otra. En este caso se asume una independencia entre el ciclo de vida de las clases relacionadas (una no depende de la otra). Se utiliza una línea sólida con una flecha abierta en un extremo (clase contenida) y un rombo vacío en el otro (clase que contiene).
Agregación
Composición Es un tipo especial de agregación. La diferencia radica en la dependencia en los ciclos de vida de las clases. El hijo no podría existir sin el padre. Se utiliza una línea sólida con una flecha abierta en un extremo (clase contenida) y un rombo lleno en el otro (clase que contiene).
Composición
Clases de Asociación Son clases que se incluyen en relaciones más complejas para incluir información valiosa sobre la relación. La nueva clase es una clase normal. Se ejemplifica por medio de una mezcla de línea sólida (clases a relacionar) unida a una línea punteada (nueva clase).
Clases de Asociación
Ejercicio Responda y explique las cuestiones que se le plantean a continuación. Mencione y explique 4 modificadores de acceso en objetos . ¿Qué es Herencia y qué tipos existen?. Explique. Menciones y explique 2 modificadores de Herencia. ¿Qué es Polimorfismo?. Explique con un ejemplo.
Ejercicio Indique cuál es el nombre del concepto que se le presenta a continuación. ¿Si un determinado atributo o método puede ser invalidado en una clase derivada se dice que es? Modificador de acceso en el cuál el atributo puede ser accedido por cualquier código que se encuentre dentro del mismo componente de software.
Ejercicio Encuentre el o los errores en el siguiente bloque de código. C# private class Contenedor { public double Volumen { get ; private set ; } public Contenedor() { Volumen = 0; } } public class Caja : Contenedor { public Caja( double ancho, double alto, double profundidad) : base () { Volumen = ancho * alto * profundidad; } }
Ejercicio Encuentre el o los errores en el siguiente bloque de código. C# public sealed class Contenedor { public double Volumen { get ; protected set ; } public string Nombre { get ; protected set ; } public Contenedor( double volumen) { Volumen = volumen; Nombre = "Contenedor" ; } } public class Caja : Contenedor { public Caja( double ancho, double alto, double profundidad) : this (ancho * alto * profundidad) { Nombre = "Caja" ; } }
Ejercicio Encuentre el o los errores en el siguiente bloque de código.
Ejercicio
Ejercicio
Ejercicio Indique el tipo de relación que existe entre las entidades (herencia, agregación, composición, clase de asociación, etc.) y dibuje la representación gráfica respectiva Alumno, curso universitario Tarjeta de crédito, compra, voucher País, himno nacional, diputado Persona, Hombre, Mujer , Matrimonio
Ejercicio Práctico Utilizando el lenguaje C#, en grupos de 4 personas, resuelva los problemas de archivo “Sesión 08 – Ejercicio Práctico.pdf ”. Deberá entregar una única solución de VSS incluyendo su respuesta a todos los ejercicios. Se calificará que las clases estén realizadas conforme a las especificaciones. La interfaz de usuario para probar las clases queda a su discreción (consola o Windows Forms ) y no será calificada, es solamente una ayuda para que usted pueda probar las clases.