Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fedegaray en 30 de Abril 2015, 20:03

Título: Qué significa super en Java: invocar métodos de superclases Ejercicio CU00692B
Publicado por: fedegaray en 30 de Abril 2015, 20:03
Hola otra vez! Vine a resolver el ejercicio de la entrega 92. Aquí vamos

Clase Profesor
Código: [Seleccionar]
public class Profesor {
    private String nombre;
    private int edad;
    private int añosConsolidados;
   
    public Profesor () {
        nombre = "";
        edad = 0;
        añosConsolidados = 0;
    }
   
    public Profesor (String nombre, int edad, int añosConsolidados) {
        this.nombre = nombre;
        this.edad = edad;
        this.añosConsolidados = añosConsolidados;
    }
   
    public void setNombre (String nombre) {
        this.nombre = nombre;
    }
   
    public void setEdad (int edad) {
        this.edad = edad;
    }
   
    public void setAñosConsolidados (int añosConsolidados) {
        this.añosConsolidados = añosConsolidados;
    }
   
    public String getNombre () {
        return nombre;
    }
   
    public int getEdad () {
        return edad;
    }
   
    public int añosConsolidados () {
        return añosConsolidados;
    }
   
    public double obtenerSalarioBase () {
        double salarioBase = 725 + (añosConsolidados*33.25);
        return salarioBase;
    }
}


Clase ProfesoEmerito
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor {
    private int añosEmerito;
   
    public ProfesorEmerito () {
        super ();
        añosEmerito = 0;
    }
   
    public ProfesorEmerito (String nombre, int edad, int añosConsolidados, int añosEmerito) {
        super (nombre, edad, añosConsolidados);
        this.añosEmerito = añosEmerito;
    }
   
    public void setAñosEmerito (int añosEmerito) {
        this.añosEmerito = añosEmerito;
    }
   
    public int getAñosEmerito () {
        return añosEmerito;
    }
   
    public double obtenerSalarioBase () {
        double salarioEmerito = super.obtenerSalarioBase() + (añosEmerito*47.80);
        return salarioEmerito;
    }
}


Clase TestEmerito
Código: [Seleccionar]
import java.util.Scanner;

public class TestEmerito {
    public static void main (String [] args) {
        System.out.println ("\f");
        ProfesorEmerito profe1 = new ProfesorEmerito ("Alberto López", 53, 32, 12);
        System.out.println ("El salario del profesor emérito " + profe1.getNombre() + " es de " + profe1.obtenerSalarioBase() + " pesos mensuales.");
    }
}
Título: Re:Ejercicio CU00692B - Palabra clave super: invocar métodos de superclases desde s
Publicado por: Dan_SB en 30 de Abril 2015, 20:32
Hola fede!

Tu ejercicio es correcto! bien hecho!

Te comento un pequeño truco por cierto, que ocurriría si escribes esta parte del código así? (pruebe a ver...):

Clase Profesor:
Código: [Seleccionar]
public double obtenerSalarioBase(){return 725 + (añosConsolidados * 33.25);}
Clase ProfesorEmerito:
Código: [Seleccionar]
public double obtenerSalarioBase(){return super.obtenerSalarioBase() + (47.80* getAñosEmerito());}
Vas a ver que funcionara igual! y no es necesario invocar variables double
Saludos!
Título: Re:Qué significa super en Java: invocar métodos de superclases Ejercicio CU00692B
Publicado por: fedegaray en 01 de Mayo 2015, 15:06
Pero claro! Se me pasó por alto esa síntesis! gracias por ayudarme a verlo!