Publicado en Tema 4 • Clases y Objetos

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.