Diseñar una clase para los atletas. La clase se llama “Atleta” y tendrá los siguientes atributos: nombre (string), peso (double) y estatura(int).
Crear un constructor de la clase Atleta con los parámetros nombre, peso y estatura
Crear un constructor de la clase Atleta con el parámetro nombre. (el peso y la estatura se cargan a 0). El nombre no se podrá cambiar una vez creada la clase
Crear el método imc() en la clase Atleta que calcule el índice de masa corporal y lo devuelva en una variable double.
Crear el método show() en la clase Atleta que muestre la información del atleta (nombre,peso, estatura e imc)
Crear un nuevo atributo en la clase Atleta que se denomina “deporte”. Este será un enumerado con los valores “NATACION”, “ATLETISMO” y “BALONCESTO”.
Se tendrá que cargar con el método setDeporte(String) y añadir su visualización en el método show()
Crear la clase “Entrenador” con los atributos: nombre(string) y deporte (enumerado de deportes)
Crear un constructor de la clase Entrenador con los parámetros nombre(string) y deporte(string)
Crear un método show() en la clase Entrenador que muestre el nombre y el deporte
Crear un nuevo atributo en la clase “Atleta” de tipo “Entrenador”
Crear el método setEntrenador para asignar un entrenador a un atleta
Validar que un entrenador de un deporte no forme parte de un atleta de otro deporte
Modificar el método show() de la clase atleta para mostrar el entrenador con su método show()
enum Dep {NATACION, ATLETISMO, BALONCESTO}
class Atleta {
private String nombre;
Double peso;
int estatura;
Dep deporte;
private Entrenador entrenador;
Atleta(String nombre, Double peso, int estatura) {
this.nombre = nombre;
this.peso = peso;
this.estatura = estatura;
}
Atleta(String nombre) {
this(nombre, 0.0, 0);
}
void setDeporte(String deporte) {
this.deporte = Dep.valueOf(deporte.toUpperCase());
}
void setEntrenador(Entrenador entrenador) {
if (this.deporte == entrenador.deporte)
this.entrenador = entrenador;
else
System.out.println("ERROR: El entrenador " + entrenador.nombre + "(" + entrenador.deporte + ") no coincide el deporte " + this.deporte);
}
double imc() {
if (this.estatura != 0)
return (this.peso / ((double) (this.estatura * this.estatura) / 10000));
return 0;
}
void show() {
System.out.println("*******************************");
System.out.println("Nombre: " + this.nombre);
System.out.println("Deporte: " + this.deporte);
System.out.println("Estatura: " + this.estatura);
System.out.println("Peso: " + this.peso);
System.out.println("IMC: " + imc());
if (this.entrenador != null)
this.entrenador.show();
System.out.println("*******************************");
}
}
class Entrenador {
String nombre;
Dep deporte;
Entrenador(String nombre, String deporte) {
this.nombre = nombre;
this.deporte = Dep.valueOf(deporte.toUpperCase());
}
void show() {
System.out.println("**** Entrenador ****");
System.out.println(" Nombre: " + this.nombre);
System.out.println(" Deporte: " + this.deporte);
}
}
public class mainAtleta {
public static void main(String[] args) {
Atleta a1 = new Atleta("javi", 73.0, 175);
a1.setDeporte("BALONCESTO");
Atleta a2 = new Atleta("maria");
a2.setDeporte("ATLETISMO");
Entrenador e1 = new Entrenador("Lara", "ATLETISMO");
a1.setEntrenador(e1);
a2.setEntrenador(e1);
a1.show();
a2.show();
}
}
