Entornos de Desarrollo - Unidad 5 - Sesión 3: Relaciones en los Diagramas de Clases (Herencia, Composición y Agregación)
Objetivos de la sesión
- Comprender las relaciones avanzadas en los diagramas de clases: herencia, composición y agregación.
- Implementar estas relaciones en código Java.
- Aprender a identificar el tipo de relación en una descripción textual.
Estructura de la sesión
1. Explicación teórica (40 minutos)
Herencia
Definición:
Relación en la que una clase hija (o subclase) hereda atributos y métodos de una clase padre (o superclase). Permite reutilizar código y crear jerarquías de clases.- Ejemplo: "Un Estudiante es un tipo de Persona."
Notación:
Una flecha con un triángulo hacia la superclase:Traducción a código:
Se usa la palabra claveextends
.
Composición
Definición:
Relación "es parte de" donde una clase contiene a otra como parte integral. Si la clase contenedora se destruye, también se destruyen las partes.- Ejemplo: "Un Coche tiene un Motor. Si el coche desaparece, el motor también."
Notación:
Un rombo negro en el lado de la clase contenedora:Traducción a código:
La clase contenedora tiene la clase parte como atributo y la instancia se crea dentro de la clase contenedora.
Agregación
Definición:
Relación "tiene un" donde una clase contiene a otra, pero las partes pueden existir independientemente del todo.- Ejemplo: "Un Profesor tiene Estudiantes, pero los estudiantes pueden existir sin el profesor."
Notación:
Un rombo vacío en el lado de la clase contenedora:Traducción a código:
La clase contenedora tiene la clase parte como atributo, pero la instancia se pasa desde fuera.
2. Ejercicios prácticos (2-2.5 horas)
Ejercicio 1: Herencia (Clase Vehículo)
Descripción:
Modelar una jerarquía de clases para vehículos.
- La clase base será Vehiculo, con los atributos: marca y modelo.
- Habrá dos subclases:
- Coche tendrá un atributo adicional: numeroPuertas.
- Moto tendrá un atributo adicional: tipoManillar.
- Cada clase debe tener un método mostrarInformacion() que muestre sus datos.
Tareas para los estudiantes:
- Diseñar un diagrama de clases.
- Implementar las clases en Java.
- Crear un programa que instancie objetos de cada clase y muestre su información.
Solución para el profesor:
Diagrama de clases:
Código en Java:
Ejercicio 2: Composición y Agregación (Coche y Ruedas)
Descripción:
- Un Coche tiene 4 ruedas (Rueda) como parte integral (composición).
- Además, el coche tiene un Propietario que puede existir independientemente (agregación).
Tareas para los estudiantes:
- Diseñar el diagrama de clases.
- Implementar las clases en Java.
- Crear un programa que:
- Cree un coche con 4 ruedas y un propietario.
- Muestre la información del coche, sus ruedas y su propietario.
Solución para el profesor:
Diagrama de clases:
Código en Java:
3. Resumen y preguntas finales (15-20 minutos)
Repaso de conceptos clave:
- Diferencias entre herencia, composición y agregación.
- Cómo identificar cada relación en una descripción textual.
Preguntas para la reflexión:
- ¿Qué sucede si eliminamos la clase contenedora en una composición? ¿Y en una agregación?
- ¿Cuándo usarías herencia en lugar de composición?
Avance para la próxima sesión:
- Relación entre diagramas de clases y generación de código automáticamente con herramientas de modelado.
Apuntes del profesor
- Material necesario: Pizarra, hojas de diagramas, editor de código.
- Tiempo estimado por ejercicio:
- Ejercicio 1: 60 minutos.
- Ejercicio 2: 75-90 minutos.
- Consejo: Supervisar especialmente la traducción de los diagramas a código, asegurándose de que entiendan cómo implementar correctamente los constructores y relaciones.
Comentarios
Publicar un comentario