Hola, a ver si alguien me puede echar una mano con este ejercicio(estoy empezando en este mundo de la POO):
Tengo 2 clases, la clase Jugadores y la clase JugadoresMain. En principio lo que intento que haga el programa es que al pasar un valor(salto) por el metodo PasadoMetro este método determine si el salto es mayor a 1, en este caso si es menor que 1 te indica que lo "sigas intentando", pero si es mayor te da el mensaje que se ha pasado de 1 y llama al método SaltoMasAlto para ver si hay un nuevo record o no.
En el metodo SaltoMasAlto mi intención es que si el nuevo salto es mayor que el salto "guardado"(mayor que 1) te indique que hay un nuevo record, sino, si el salto "guardado" es mayor entonces te indica que ese sigue siendo el record.
Por ejemplo mi intención es que : si el primer salto es 1.1, 1.1>1 por lo tanto entra en el metodo SaltoMasAlto, como no hay nada guardado entonces 1.1 es el nuevo record...Si el segundo salto es 1.4, 1.4>1 por lo tanto entra en el metodo SaltoMasAlto,1.4>1.1
*por lo tanto hay nuevo record...Si el tercer salto es 1.2, 1.2>1 por lo tanto entra en el metodo SaltoMasAlto, 1.2<1.4 por lo tanto no hay nuevo record...
Sé donde está el fallo de mi ejercicio, y es que en el if(salto>this.salto) del metodo "SaltoMasAlto" esa condicion siempre se cumple ya que this.salto es cero...pero no se me ocurre como resolverlo y hacer que "this.salto" (o cualquier otra variable que pueda crear) pueda guardar el valor del salto mas alto para así compararlo con el nuevo salto.
public class Jugadores {
private int edad;
private double salto;
private int puntos;
private String apellido;
private String nombre;
public Jugadores(){
this.nombre="Lebron";
this.apellido="James";
this.edad=27;
}
public Jugadores(String nombre,String apellido,int edad){
this.nombre=nombre;
this.apellido=apellido;
this.edad=edad;
}
public String GetNom(){
return this.nombre;
}
public String GetAp(){
return this.nombre;
}
public void PasadoMetro(double salto){
if(salto>1){
System.out.println(this.nombre+" "+this.apellido+" Ha pasado de 1, eres un campeón");
SaltoMasAlto(salto);
}else{
System.out.println("Siga intentandolo, salto mejorable");
}
}
private void SaltoMasAlto(double salto){
if(salto>this.salto){
System.out.println("El nuevo record es"+salto);
}else{
System.out.println("El record sigue siendo"+this.salto);
}
}
}
public class JugadoresMain {
public static void main(String[]args){
Jugadores jugador1=new Jugadores();
Jugadores jugador2=new Jugadores("Jose","Perez",32);
Jugadores jugador3=new Jugadores("Larry","Bird",35);
System.out.println("Primer salto de:"+jugador1.GetNom()+" "+jugador1.GetAp()+": 0,5");
jugador1.PasadoMetro(0.5);
System.out.println("Primer salto de:"+jugador2.GetNom()+" "+jugador2.GetAp()+": 1");
jugador2.PasadoMetro(1);
System.out.println("Primer salto de:"+jugador3.GetNom()+": 1,3");
jugador3.PasadoMetro(1.3);
System.out.println("Segundo salto de:"+jugador1.GetNom()+": 1,2");
jugador1.PasadoMetro(1.3);
System.out.println("Segundo salto de:"+jugador2.GetNom()+":2,1");
jugador2.PasadoMetro(2.1);
System.out.println("Segundo salto de:"+jugador1.GetNom()+": 1,1");
jugador1.PasadoMetro(1.1);
}
}
Gracias por la ayuda!!!