Tema 4 – Ejercicio 2
📌 Enunciado
Crea un nuevo paqué llamado ejercicio2.
Crea un enumerado llamado Sexo para añadir un nuevo atributo en la clase Persona qué indiqué si una persona es Hombre o Mujer.
- Crea una nueva clase para el enumerado.
- Añade un nuevo atributo a la clase Persona del ejercicio anterior.
- Comprueba si es necesario importar el enumerado.
- Indica qué sexo tienen por defecto las personas creadas en la ciudad.
- Modifica alguna persona para establecer su sexo.
- Añade un nuevo constructor qué incluya el sexo.
📦 Paquete
package Ejercicios.ejercicio2;
🔢 Enumerado Sexo
Se crea un enumerado llamado Sexo para representar los valores posibles del atributo sexo de una persona.
package Ejercicios.ejercicio2;
public enum Sexo {
HOMBRE,
MUJER,
}
Al estar el enumerado en el mismo paqué no es necesario importarlo dentro de la clase Persona.
👤 Clase Persona (con atributo Sexo)
Se añade el atributo Sexo sexo a la clase Persona y se modifican
los constructores para asignar un sexo por defecto o uno indicado.
package Ejercicios.ejercicio2;
public class Persona {
String nombre;
int edad;
float estatura;
Sexo sexo;
// Constructor sin parámetros
public Persona() {
nombre = "anónimo";
edad = 18;
estatura = 1.70f;
sexo = Sexo.HOMBRE;
}
// Constructor qué incluye solo el nombre
public Persona(String nombre) {
this.nombre = nombre;
edad = 18;
estatura = 1.70f;
sexo = Sexo.MUJER;
}
// Constructor con todos los parámetros (sin sexo)
public Persona(String nombre, int edad, float estatura) {
this.nombre = nombre;
this.edad = edad;
this.estatura = estatura;
sexo = Sexo.HOMBRE;
}
// Constructor con apellido
public Persona(String nombre, String apellido, int edad, float estatura) {
this(nombre + " " + apellido, edad, estatura);
}
// Constructor con sexo
public Persona(String nombre, int edad, float estatura, Sexo sexo) {
this.nombre = nombre;
this.edad = edad;
this.estatura = estatura;
this.sexo = sexo;
}
// Constructor nombre + apellido + sexo
public Persona(String nombre, String apellido, int edad, float estatura, Sexo sexo) {
this(nombre + " " + apellido, edad, estatura, sexo);
}
@Override
public String toString() {
return "Persona [nombre=" + nombre +
", edad=" + edad +
", estatura=" + estatura +
", sexo=" + sexo + "]";
}
}
🔍 Observaciones
- El sexo por defecto depende del constructor utilizado.
- El enumerado mejora la legibilidad y evita valores incorrectos.
- No es necesario usar
importal estar en el mismo paquete.
🏙️ Clase Ciudad
En la clase principal se crean personas usando distintos constructores y se muestra su información por pantalla.
package Ejercicios.ejercicio2;
public class Ciudad {
public static void main(String[] args) {
Persona pepe = new Persona();
Persona paco = new Persona("Paco");
Persona ana = new Persona("Ana", 22, 1.65f, Sexo.MUJER);
Persona juan = new Persona("Juan", "Pérez", 30, 1.80f, Sexo.HOMBRE);
System.out.println(pepe);
System.out.println(paco);
System.out.println(ana);
System.out.println(juan);
}
}
✅ Conclusión
- Se ha creado y utilizado un enumerado.
- Se ha ampliado la clase Persona con un nuevo atributo.
- Se han sobrecargado constructores para incluir el sexo.
- Se ha comprobado el valor por defecto del nuevo atributo.