Autor Tema: public,private y protected Java.Tipos modificador acceso. Visibilidad CU00693B  (Leído 2475 veces)

LuisM

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 131
    • Ver Perfil
Hola a todos !! Paso a dejar el código y responder las preguntas del ejercicio propuesto en la clase CU00693B del tutorial de programación Java en pdf. Desde ya mcuhas gracias. Saludos,
Luis

EJERCICIO

Considera que estás desarrollando un programa Java donde trabajas con la superclase Profesor y la subclase ProfesorEmerito. Crea el código para estas clases que cumpla los requisitos que indicamos.

Como atributos de la superclase tendremos nombre (String), edad (int) y añosConsolidados (int) declarados como protected.

En la subclase se trabajará con el campo adicional añosEmerito declarado como private.

Un método de la subclase será double obtenerSalarioBase () que obtendrá el salario base como (925 + añosConsolidados * 33.25 + 47.80 * añosEmerito).

Intenta acceder directamente al campo añosConsolidados desde la subclase (como si fuera un campo más de la subclase) para implementar este método. ¿Es posible sin utilizar una invocación a super ni un método get?
Si, es posible al declarar el atributo aniosConsolidados como protected -ver el código abajo-
¿Qué ocurre si el atributo en la superclase lo declaras private?
Si se declara private el atriburo aniosConsolidados y queremos acceder directamente aparecerá un error en la ejecución.

Clase Profesor
Código: [Seleccionar]
public class Profesor {  //Ejemplo aprenderaprogramar.com
    protected String nombre;
    protected int edad;
    protected int aniosConsolidados;
    public Profesor (String nombre, int edad, int aniosConsolidados) {
        this.nombre=nombre; this.edad=edad; this.aniosConsolidados=aniosConsolidados;
    }
    public void mostrarDatos() {
        System.out.println ("Datos Profesor. nombre: "+nombre+", edad: "+edad+", consolidados :"+aniosConsolidados);   }
} //Cierre de la clase

Clase ProfesorInterino
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor {  //Ejemplo aprenderaprogramar.com
    private int aniosEmerito;
    private double salarioBase;
    public ProfesorEmerito (String nombre, int edad, int aniosConsolidados, int aniosEmerito) {
        super(nombre, edad, aniosConsolidados);
        this.aniosEmerito=aniosEmerito;
        obtenerSalarioBase();
    }
    public double obtenerSalarioBase(){
        salarioBase = (925+aniosConsolidados)*33.25 + (47.80*aniosEmerito);
        return salarioBase;
    }
    public void mostrarDatos() {
        super.mostrarDatos();
        System.out.println ("Años como profesor emérito :"+aniosEmerito+" con un salario base:"+salarioBase);   }
} //Cierre de la clase

Clase ListinProfesores
Código: [Seleccionar]
import java.util.ArrayList; //Ejemplo aprenderaprogramar.com
public class ListinProfesores{
    private ArrayList <Profesor> listinProfesores;
    //Constructor
    public ListinProfesores () {
        listinProfesores = new ArrayList <Profesor> (); }
    //Métodos
    public void addProfesor (Profesor profesor) {
        listinProfesores.add(profesor);}     // Cierre método addProfesor
    public void listar() {
        System.out.println ("Se procede a mostrar los datos de los profesores existentes en el listín");
        for (Profesor tmp: listinProfesores) {       //Uso de for extendido
            tmp.mostrarDatos();}
    } //Cierre método
} //Cierre de la clase

Clase Test -método main-
Código: [Seleccionar]
public class Test {
    public static void main (String [ ] Args) {
        ProfesorEmerito emerito1 = new ProfesorEmerito ("Juan Lopez", 53, 25,10);
        ProfesorEmerito emerito2 = new ProfesorEmerito("José Luis Perez", 54, 20, 5);
        ListinProfesores listin1 = new ListinProfesores ();
        listin1.addProfesor(emerito1);
        listin1.addProfesor(emerito2);
        listin1.listar();} //Cierre del main
} //Cierre de la clase
« Última modificación: 18 de Noviembre 2017, 18:46 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, ejercicio correcto

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".