Ejercicios con Clases en Java

Aquí te dejo varios ejercicios con Clases en Java, para que puedas practicar lo aprendido en post anteriores. No explico la solución, sencillamente muestro una posible solución, pero mi recomendación es que intentes hacer los ejercicios sin mirar mi solución, y que la consultes sólo si te atascas.

Ejercicio 1

Crea una clase llamada Pais.

La clase debe tener los siguientes parámetros (recuerda que los parámetros deben ser declarados como privados por cuestiones de seguridad):

  • nombre (tipo String): Es el nombre del pais.
  • población (tipo long): Número de habitantes del pais.
  • PIB (tipo double): Representa el producto interior bruto en millones de €

La clase tiene un único constructor con todos los parámetros.

La clase tiene todos los métodos getters y setters.

Además, tendrá un método que devuelva el PIB per cápita, calculado dividiendo el PIN en € por la población. (Ten en cuenta que tienes que usar el PIB en €)

Un posible código solución sería:

package ejercicioclases;

public class Pais {
    private String nombre;
    private long población;
    private double PIB;

    //Constructores
    public Pais(String nombre, long población, double PIB) {
        this.nombre = nombre;
        this.población = población;
        this.PIB = PIB;
    }
    //getters y setters
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public long getPoblación() {
        return población;
    }
    public void setPoblación(long población) {
        this.población = población;
    }
    public double getPIB() {
        return PIB;
    }
    public void setPIB(double PIB) {
        this.PIB = PIB;
    }
    // métodos
    public double PIBPerCapita(){
    return (this.PIB*1000000)/this.población;
    }
}

Ejercicio 2

Crea un clase llamada proyecto con los siguientes parámetros, que puedes llamarles como quieras:

  • Primer parámetro: Descripción del Proyecto.
  • Segundo parámetro: Duración del Proyecto en días.
  • Tercer parámetro: El dinero que ganas trabajando un día en ese Proyecto. Vamos tu tarifa diaria.

La clase Proyecto tendrá un constructor con los tres parámetros, que tienen que ser declarados como privados. Con lo que tendrás que implementar los métodos getters y setters.

La clase cuenta también con un método que calcula el dinero que ganaras trabajando en el Proyecto. Para este cálculo, sencillamente multiplicas el Segundo parámetro por el tercero.

Una posible solución sería:

package ejercicioclases;

public class Proyecto {
    private String descripcion;
    private int duracion;
    private int tarifaDiaria;

    public Proyecto(String descripcion, int duracion, int tarifaDiaria) {
        this.descripcion = descripcion;
        this.duracion = duracion;
        this.tarifaDiaria = tarifaDiaria;
    }
    public String getDescripcion() {
        return descripcion;
    }
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
    public int getDuracion() {
        return duracion;
    }
    public void setDuracion(int duracion) {
        this.duracion = duracion;
    }
    public int getTarifaDiaria() {
        return tarifaDiaria;
    }
    public void setTarifaDiaria(int tarifaDiaria) {
        this.tarifaDiaria = tarifaDiaria;
    }
    public int dineroGanado(){
        return this.getDuracion()*this.getTarifaDiaria();
    }
}

Ejercicio 3

Usando la clase Casa definida como:

package ejercicioclases;

public class Casa {
    private double metrosCuadrados;
    private boolean jardin;
    
//constructores
    public Casa(double metrosCuadrados, boolean jardin) {
        this.metrosCuadrados = metrosCuadrados;
        this.jardin = jardin;
    }
//métodos
    public double precio (double m2, boolean jardin){
        double pr=m2*1000;
        if (jardin){
            pr=pr+5000;
        }
        return pr;
    }
//métodos getters y setters
    public double getMetrosCuadrados() {
        return metrosCuadrados;
    }
    public void setMetrosCuadrados(double metrosCuadrados) {
        this.metrosCuadrados = metrosCuadrados;
    }
    public boolean isJardin() {
        return jardin;
    }
    public void setJardin(boolean jardin) {
        this.jardin = jardin;
    }
}

Codifica un programa java que pregunte al usuario cuantos metros cuadrados tiene su casa y si tiene jardín. Con esos datos, el programa debe calcular el precio de la casa y dibujar el valor en la pantalla. Para calcular el precio debes emplear el método precio de la clase Casa.

Un posible ejemplo de ejecución sería:

run:
Por favor, introduce los metros cuadrados de tu casa: 
1000
La casa, tiene jardin? (true/false)
true
El precio de la casa es: 1005000.0
BUILD SUCCESSFUL (total time: 11 seconds)

Y una posible solución para nuestro método main, sería:

package ejercicioclases;

import java.util.Scanner;

public class EjercicioClases {

    public static void main(String[] args) {
        Scanner sc1 = new Scanner (System.in);
        Scanner sc2 = new Scanner (System.in);
        System.out.println("Por favor, introduce los metros cuadrados de tu casa: ");
        double m2=sc1.nextDouble();
        System.out.println("La casa, tiene jardin? (true/false)");
        boolean tieneJardin = sc2.hasNextBoolean();
        
        Casa casa1 = new Casa (m2, tieneJardin);
        System.out.println("El precio de la casa es: "+casa1.precio(m2, tieneJardin));

        sc1.close();sc2.close();
    }
}   

Ejercicio 4

Crea una clase que se llame Persona con las siguientes características:

  • Parámetros: nombre (tipo String) y añoNacimiento (tipo int). Declarados como privados.
  • Un constructor que acepte todos los parámetros.
  • Un método llamado edad que devuelve la edad de la persona. A este método hay que pasarle un parámetro (tipo int): el año actual, y calcula la edad de la persona restando al año actual el año de Nacimiento.

Crea además una clase denominada Estudiante que herede de la clase Persona, que sería la superclase. La clase Estudiante debe además tener las siguientes características:

  • Un parámetro adicional llamado carrera de tipo String.
  • Un constructor que acepte todos los parámetros, incluidos los heredados de la superclase.
  • Un método llamado dibujarDatos que dibuje por pantalla todos los datos del objeto Estudiante en cuestión.

Entonces en el método main, programa las siguientes acciones:

  • Pide al usuario, suponiendo que se trata de un estudiante, que introduzca sus datos: los tres parámetros de la clase Estudiante.
  • Crea un objeto Estudiante con dichos datos.
  • Utiliza el método dibujarDatos para pintar por pantalla los datos del estudiante.
  • Utiliza el método edad heredado de la superclase para pintar por pantalla la edad del estudiante.

Un posible output sería:

run:
Por favor, introduce tu nombre
Marta
En que año naciste?
1998
Que carrera estás cursando?
Marketing
El nombre del estudiante es: Marta
Nacio en el año: 1998
Y está estudiando la carrera: Marketing
El estudiante Marta tiene 22 años
BUILD SUCCESSFUL (total time: 12 seconds)

Y un posible código solución:

  1. Clase Persona:
package ejercicioclases;

public class Persona {
    private String nombre;
    private int añoNacimiento;
//constructor
    public Persona(String nombre, int añoNacimiento) {
        this.nombre = nombre;
        this.añoNacimiento = añoNacimiento;
    }
//getters and setters
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public int getAñoNacimiento() {
        return añoNacimiento;
    }
    public void setAñoNacimiento(int añoNacimiento) {
        this.añoNacimiento = añoNacimiento;
    }
//métodos
    public int edad(int añoActual){
        return añoActual-this.añoNacimiento;
    }
}
  1. Clase Estudiante:
package ejercicioclases;

public class Estudiante extends Persona {
    private String carrera;

    public Estudiante(String carrera, String nombre, int añoNacimiento) {
        super(nombre, añoNacimiento);
        this.carrera = carrera;
    }
    public void dibujarDatos(){
        System.out.println("El nombre del estudiante es: "+this.getNombre());
        System.out.println("Nacio en el año: "+this.getAñoNacimiento());
        System.out.println("Y está estudiando la carrera: "+this.carrera);
    }
}
  1. Clase principal (con el método main):
package ejercicioclases;

import java.util.Scanner;

public class EjercicioClases {

    public static void main(String[] args) {
        Scanner sc1 = new Scanner (System.in);
        System.out.println("Por favor, introduce tu nombre");
        String nombre = sc1.nextLine();
        Scanner sc2 = new Scanner (System.in);
        System.out.println("En que año naciste?");
        int añoNac = sc2.nextInt();
        Scanner sc3 = new Scanner (System.in);
        System.out.println("Que carrera estás cursando?");
        String carrera = sc3.nextLine();
        
        Estudiante est = new Estudiante (carrera,nombre,añoNac);
        est.dibujarDatos();
        System.out.println("El estudiante "+est.getNombre()+" tiene "+est.edad(2020)+" años");
        sc1.close();sc2.close();sc3.close();
    }
}

NOTA:

Este post es parte de la colección “Java”. Puedes ver el índice de esta colección aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.