SlideShare una empresa de Scribd logo
1 de 24
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
1. 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
2. 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
3. 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
4. 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
5. Encuentre el o los errores en el siguiente
bloque de código.
Ejercicio
Ejercicio
Ejercicio
6. 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
1. Utilizando el lenguaje C#, en grupos de 4
personas, resuelva los problemas de archivo
“Sesión 08 – Ejercicio Práctico.pdf”.
o Deberá entregar una única solución de VSS
incluyendo su respuesta a todos los ejercicios.
o Se calificará que las clases estén realizadas
conforme a las especificaciones.
o 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.
Gracias por su atención

Más contenido relacionado

La actualidad más candente

Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de ClasesAdal Dg
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVAmellcv
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
Glosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoGlosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoRafael Miranda
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 

La actualidad más candente (20)

Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Glosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoGlosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendido
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Recursividad
RecursividadRecursividad
Recursividad
 
Fundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacionalFundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacional
 

Similar a Programación Orientada a Objetos - Otras relaciones entre clases

Similar a Programación Orientada a Objetos - Otras relaciones entre clases (20)

31096724 diagrama-de-clases-en-uml
31096724 diagrama-de-clases-en-uml31096724 diagrama-de-clases-en-uml
31096724 diagrama-de-clases-en-uml
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Clases 2
Clases 2Clases 2
Clases 2
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Clase 17
Clase 17Clase 17
Clase 17
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
S03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herenciaS03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herencia
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Tutorial uml
Tutorial umlTutorial uml
Tutorial uml
 
Unidad2 relaciones
Unidad2 relacionesUnidad2 relaciones
Unidad2 relaciones
 
encuesta
encuestaencuesta
encuesta
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 

Más de Alvaro Enrique Ruano

Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Alvaro Enrique Ruano
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmosAlvaro Enrique Ruano
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y ShellAlvaro Enrique Ruano
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro Enrique Ruano
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Alvaro Enrique Ruano
 
Solución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareSolución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareAlvaro Enrique Ruano
 

Más de Alvaro Enrique Ruano (16)

Resumen caso Enron
Resumen caso EnronResumen caso Enron
Resumen caso Enron
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y Shell
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...
 
Solución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareSolución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de software
 

Programación Orientada a Objetos - Otras relaciones entre clases

  • 1. Otras relaciones en la POO Unidad 2 ING. ALVARO ENRIQUE RUANO
  • 2. Contenido ● Asociaciones Bidireccionales ● Asociaciones Unidireccionales ● Clases de Asociación ● Agregación ● Composición
  • 3. 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.
  • 4. 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.
  • 6. Asociaciones Bidireccionales Ejemplos de indicadores de multiplicidad
  • 7. 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.
  • 9. 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).
  • 11. 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).
  • 13. 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).
  • 15. Ejercicio 1. 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.
  • 16. Ejercicio 2. 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.
  • 17. Ejercicio 3. 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; } }
  • 18. Ejercicio 4. 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"; } }
  • 19. Ejercicio 5. Encuentre el o los errores en el siguiente bloque de código.
  • 22. Ejercicio 6. 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
  • 23. Ejercicio Práctico 1. Utilizando el lenguaje C#, en grupos de 4 personas, resuelva los problemas de archivo “Sesión 08 – Ejercicio Práctico.pdf”. o Deberá entregar una única solución de VSS incluyendo su respuesta a todos los ejercicios. o Se calificará que las clases estén realizadas conforme a las especificaciones. o 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.
  • 24. Gracias por su atención