Saltar a contenido

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

  1. Repositorio Git con:
    • Carpetas src/main/java/modelo y src/test/java.
    • Las tres clases.
    • Una clase Main con un public static void main(String[] args) donde instancies al menos dos objetos por clase, uno con cada constructor, y los imprimas con toString().