Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: matru en 25 de Marzo 2016, 19:21

Título: Java Invocar metodos superclases con palabra clave super ejercicio CU00692B
Publicado por: matru en 25 de Marzo 2016, 19:21
Respuesta al ejercicio CU00692B del curso java desde cero:

Código: [Seleccionar]
public class TestProfesor
{
    public static void main(){
    Profesor pro = new ProfesorEmerito("Juan Gonzalez", 35, 10,3);
   
    pro.mostrarDatos();
    System.out.println("Salario Base del Profesor: "+ pro.obtenerSalarioBase());
   
   
}
}

Código: [Seleccionar]
public class Profesor{
   
    private String nombre;
    private int edad;
    private int anosConsolidados;
   
    public Profesor(){
    }
   
    public Profesor(String nombre, int edad, int anosConsolidados){
   
        this.nombre = nombre;
        this.edad = edad;
        this.anosConsolidados = anosConsolidados;
    }
   
    public void setNombre(String nombre){this.nombre = nombre;}
    public String getNombre(){return nombre;}
   
    public void setEdad(int edad){this.edad = edad;}
    public int getEdad(){return edad;}
   
    public void setAnosConsolidados(int anosConsolidados){this.anosConsolidados = anosConsolidados;}
    public int getAnosConsolidados(){return anosConsolidados;}
   
    public void mostrarDatos(){
       
     System.out.print("Nombre: "+ getNombre()+ "\nEdad: "+ getEdad()+ " anos \nAnos Consolidados: "+ getAnosConsolidados());
    }
   
    public double obtenerSalarioBase(){
       
        double tmp = 725 + getAnosConsolidados();
        return tmp = tmp *33.25;
    }

 }


Código: [Seleccionar]
public class ProfesorEmerito extends Profesor{
   
    private int anosEmerito;
   
    public ProfesorEmerito(){}
   
    public ProfesorEmerito(String nombre, int edad, int anosConsolidados, int anosEmerito){
   
        super(nombre, edad, anosConsolidados);
        this.anosEmerito = anosEmerito;
    }
   
    public void setAnosEmerito(int anosEmerito){this.anosEmerito = anosEmerito;}
    public int getAnosEmerito(){return anosEmerito;}
   
    public void mostrarDatos(){
   
        super.mostrarDatos();
        System.out.print("\nAnos Emeritos: "+ getAnosEmerito()+"\n");
    }
   
    public double obtenerSalarioBase(){
       
         double tmp = super.obtenerSalarioBase();
         tmp += +(47.80 * getAnosEmerito());
         return tmp;
    }
Título: Re:Java Invocar metodos superclases con palabra clave super ejercicio CU00692B
Publicado por: Alex Rodríguez en 29 de Marzo 2016, 13:57
Hola matru

Tienes mal el cálculo del salario base en la clase Profesor

En tu método tienes:

        double tmp = 725 + getAnosConsolidados();
        return tmp = tmp *33.25;

Pero eso no es correcto

El enunciado dice: salario base como (725 + el número de años consolidados multiplicado por 33.25).

Es decir 725 + anosConsolidados*33.25 o también 725 + getAnosConsolidados()*33.25;

Por ejemplo si son 5 años consolidados, el cálculo es 725 + 5*33.25 = 725 + 166.25 = 891.25

Según tu método el resultado es 730*33.25 = 24272.5

Saludos