Tema 4 – Ejercicio 1
📌 Enunciado
Crea un paqué llamado ejercicio1. Crea la clase Persona correspondiente al modelo dado por el diagrama.
El método cumplirAños debe incrementar en uno la edad, mientras que
crecer debe aumentar la estatura según el incremento indicado.
Crea una clase principal llamada Ciudad para modelar una ciudad ficticia. En el método principal se crearán varias instancias de la clase Persona y se mostrará su información por pantalla.
📦 Paquete
package Ejercicios.ejercicio1;
👤 Clase Persona
La clase Persona contiene los atributos nombre, edad y estatura. Se han creado varios constructores para cumplir los requé del ejercicio.
package Ejercicios.ejercicio1;
public class Persona {
String nombre;
int edad;
float estatura;
// Constructor sin parámetros
public Persona() {
nombre = "anónimo";
edad = 18;
estatura = 1.70f;
}
// Constructor qué incluye solo el nombre
public Persona(String nombre) {
this.nombre = nombre;
edad = 18;
estatura = 1.70f;
}
// Constructor con todos los parámetros
public Persona(String nombre, int edad, float estatura) {
this.nombre = nombre;
this.edad = edad;
this.estatura = estatura;
}
// Constructor con apellido
public Persona(String nombre, String apellido, int edad, float estatura) {
this(nombre + " " + apellido, edad, estatura);
}
@Override
public String toString() {
return "Persona: Nombre = " + nombre +
", edad = " + edad +
", estatura = " + estatura;
}
}
🔍 Observaciones
- Al imprimir un objeto sin sobrescribir
toString(), se mostraría la referencia. - Al sobrescribir
toString(), se imprime el contenido del objeto. - En el depurador se pueden ver los cambios de los atributos en tiempo real.
🏙️ Clase Ciudad (Clase principal)
En esta clase se crean distintos objetos de tipo Persona usando los diferentes constructores solicitados en el ejercicio.
package Ejercicios.ejercicio1;
public class Ciudad {
public static void main(String[] args) {
Persona persona1 = new Persona("Pablo", 21, 1.80f);
persona1.nombre = "Pablo";
persona1.edad = 21;
Persona persona2 = new Persona("Francisco", 22, 1.60f);
persona2.nombre = "Francisco";
persona2.edad = 22;
Persona persona3 = new Persona("Javier", 20, 1.90f);
persona3.nombre = "Javier";
persona3.edad = 20;
// Constructor por defecto
Persona pepe = new Persona();
Persona paco = new Persona();
// Constructor con todos los parámetros
Persona ana = new Persona("Ana", 25, 1.65f);
Persona luis = new Persona("Luis", 30, 1.80f);
// Constructor con nombre y apellido
Persona juan = new Persona("Juan", "Pérez", 22, 1.75f);
System.out.println(juan);
System.out.println(pepe);
System.out.println(paco);
System.out.println(persona1);
System.out.println(persona2);
System.out.println(persona3);
System.out.println();
System.out.println("Hola soy " + persona1.nombre + " y tengo " + persona1.edad + " años.");
System.out.println("Hola soy " + persona2.nombre + " y tengo " + persona2.edad + " años.");
System.out.println("Hola soy " + persona3.nombre + " y tengo " + persona3.edad + " años.");
}
}
✅ Conclusión
- Se han creado varios constructores sobrecargados.
- Se ha comprobado el uso del constructor por defecto.
- Se ha sobrescrito
toString()para mostrar el contenido del objeto. - Se ha trabajado con objetos y depuración en tiempo real.