Semana 4 - Actividad Práctica: Del mundo real a objetos Java
Objetivo de la actividad
Convertir tres ideas cotidianas de tu entorno inmediato (casa, colegio, trabajo, parque, redes sociales, transporte, etc.) en tres clases Java totalmente encapsuladas que cumplan todos los requisitos solicitados.
Instrucciones paso a paso
1. Fase de exploración (individual o parejas)
Recorre tu entorno físico o digital y elige tres “cosas” que te rodeen y que posean al menos seis características medibles o distinguibles.
Ejemplos válidos:
- Un café de especialidad (origen, temperatura, tamaño, precio, intensidad, fechaTostado).
- Un ticket de transporte urbano (línea, origen, destino, precio, fecha, hora salida).
- Un perfil de red social (alias, númeroSeguidores, númeroSiguiendo, fotoPerfil, biografía, fechaRegistro).
Tip
Intenta que los tres dominios sean diferentes entre sí para practicar más conceptos.
2. Diseño UML rápido
Antes de tocar código, dibuja en una libreta o en app.diagrams.net un diagrama de clases muy sencillo que contenga:
- Nombre de la clase centrado.
- Sección de atributos (visibilidad
–+ tipo + nombre). - Sección de constructores y métodos (visibilidad
+).
Ejemplo parcial para la clase CafeEspecialidad:
--------------------------
| - origen: String |
| - temp: double |
| - tamanio: int |
| - precio: BigDecimal|
| - intensidad: int |
| - fechaTostado: LocalDate |
--------------------------
| + CafeEspecialidad() |
| + CafeEspecialidad(...) |
| + get...() / set...() |
| + toString() |
--------------------------
3. Implementación en Java
Crea un proyecto Maven o Gradle llamado EntornoPOO y dentro el paquete modelo.
Cada clase debe cumplir todas y cada una de las siguientes especificaciones:
| Requisito | Detalle |
|---|---|
| Atributos | Mínimo 6 atributos de tipos variados (al menos: String, primitivo numérico, boolean, tipo fecha o decimal, un objeto propio o List). |
| Encapsulamiento | Todos los atributos private. |
| Constructor vacío | Constructor sin parámetros que inicialice valores por defecto razonables. |
| Constructor por defecto | Sinónimo del vacío; si ya existe, déjalo. Si tu IDE genera uno con valores por defecto, regístralo con comentario // Constructor por defecto. |
| Constructor con parámetros | Constructor que reciba los 6 atributos y los asigne usando los setters para reutilizar validaciones. |
| Getters y Setters | Un par por atributo. Los setters deben validar (ej. no negativos, rangos, no nulos). |
| toString() | Override que devuelva una cadena legible con todos los atributos. |
4. Validaciones mínimas por setter (ejemplos)
| Atributo | Regla de ejemplo |
|---|---|
precio |
Mayor que 0, menor que 10 000. |
fechaTostado |
No futura, no anterior a 2010. |
intensidad |
Solo entre 1 y 10. |
5. Entregables
- Repositorio Git con:
- Carpetas
src/main/java/modeloysrc/test/java. - Las tres clases.
- Una clase
Maincon unpublic static void main(String[] args)donde instancies al menos dos objetos por clase, uno con cada constructor, y los imprimas contoString().
- Carpetas