Java
Ejercicios
Ejercicios
  • 02-Estructuras de control y bucles
    • Ejercicios de estructuras de control
    • Ejercicios de estructuras de control II
  • 06-Patrones de diseño
    • Ejercicio MVC en JAVA
  • 08-Flujos y Ficheros
    • Ejercicio de Redirección y Comunicación entre Procesos en Java
    • Ejercicio de Comunicación y Sincronización entre Tres Procesos en Java
  • 08-Flujos y Ficheros
  • 10-Swing
    • Ejercicio Aplicación de Notas Simples
    • Ejercicio Cálculadora básica
    • Ejercicio: Aplicación de Lista de Tareas con layouts
    • Ejercicio: Dibujo de figuras con Graphics
    • Ejercicio: Aplicación de Control de Color de un Rectángulo
    • Ejercicio: Dibujo de una clase vista
  • 03-Arrays y colecciones
    • 03.01-Arrays
      • Sistema de Gestión de Cine
      • Ejercicios básicos de arrays
    • 03.02-Colecciones
      • Sistema de Gestión de Canales de YouTube
  • 05-POO
    • 05.1-POO Iniciación
      • Ejercicio: Sistema de Gestión para una Biblioteca
      • Ejercicio de arrays. Aventura de los Patapons
      • Ejercicios básicos sobre POO
    • 05.2-POO Clases Abstractas
      • Sistema de Gestión de Vehículos
    • 05.6-Generales de POO
      • Ejercicio: Sistema de Gestión de Empleados
      • Aventuras en el Laberinto Encantado
      • Ejercicio de Pasapalabra
  • Soluciones
    • 02-Estructuras de control y bucles
      • [Solución] Ejercicios de estructuras de control II
    • 06-Patrones de diseño
      • [Solucion] Ejercicio MVC en JAVA
    • 08-Flujos y Ficheros
      • Solución de Ejercicio de Redirección y Comunicación entre Procesos en Java
      • Solución de Ejercicio de Comunicación y Sincronización entre Tres Procesos en Java
    • 10-Swing
      • [Solución] Ejercicio Aplicación de Notas Simples
      • [Solución] Ejercicio Cálculadora Simple
      • [Solución] Ejercicio: Aplicación de Lista de Tareas con layouts
      • [Solución] Ejercicio: Dibujo de figuras con Graphics
      • [Solución] Ejercicio: Dibujo de figuras con Graphics
      • [Solución] Ejercicio: Aplicación de Control de Color de un Rectángulo
    • 03-Arrays y colecciones
      • 03.01-Arrays
        • [Solución] Ejercicios de estructuras de control 2
        • [Solución] Sistema de Gestión de Cine
        • [Solución] Ejercicios básicos de arrays
      • 03.02-Colecciones
        • [Solución] Sistema de Gestión de Canales de YouTube
    • 05-POO
      • 05.1-POO Iniciación
        • [Solución] Ejercicio de arrays. Aventura de los Patapons
        • [Solución] Ejercicios básicos sobre POO
      • 05.2-POO Clases Abstractas
        • [Solución] Sistema de Gestión de Vehículos
      • 05.6-Generales de POO
        • Solución de Sistema de Gestión de Empleados
        • [Solución] Aventuras en el Laberinto Encantado
        • [Solución] Ejercicio de Pasapalabra
Powered by GitBook
On this page
  • Interfaz Bonificable
  • Clase Empleado
  • Clase Gerente
  • Clase Empresa
  • Clase Main
  1. Soluciones
  2. 05-POO
  3. 05.6-Generales de POO

Solución de Sistema de Gestión de Empleados

Interfaz Bonificable

public interface Bonificable {
    double calcularBono();
}

Clase Empleado

public class Empleado {
    private String nombre;
    private int ID;
    private double salarioBase;

    public Empleado(String nombre, int ID, double salarioBase) {
        this.nombre = nombre;
        this.ID = ID;
        this.salarioBase = salarioBase;
    }

    public double calcularSalario() {
        return salarioBase;
    }

    public void mostrarDetalles() {
        System.out.println("ID: " + ID + ", Nombre: " + nombre + ", Salario Base: " + salarioBase);
    }

    // Getters
    public String getNombre() {
        return nombre;
    }

    public int getID() {
        return ID;
    }

    public double getSalarioBase() {
        return salarioBase;
    }

    // Setters
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public void setSalarioBase(double salarioBase) {
        this.salarioBase = salarioBase;
    }
}

Clase Gerente

public class Gerente extends Empleado implements Bonificable {
    private double bonoAnual;

    public Gerente(String nombre, int ID, double salarioBase, double bonoAnual) {
        super(nombre, ID, salarioBase);
        this.bonoAnual = bonoAnual;
    }

    @Override
    public double calcularSalario() {
        return super.calcularSalario() + calcularBono();
    }

    @Override
    public double calcularBono() {
        return bonoAnual;
    }

    @Override
    public void mostrarDetalles() {
        super.mostrarDetalles();
        System.out.println("Bono Anual: " + bonoAnual);
    }
}

Clase Empresa

import java.util.ArrayList;
import java.util.List;

public class Empresa {
    private List<Empleado> empleados;

    public Empresa() {
        empleados = new ArrayList<>();
    }

    public void añadirEmpleado(Empleado empleado) {
        empleados.add(empleado);
    }

    public void mostrarEmpleados() {
        for (Empleado empleado : empleados) {
            empleado.mostrarDetalles();
            System.out.println("Salario Total: " + empleado.calcularSalario());
            System.out.println();
        }
    }
}

Clase Main

public class Main {
    public static void main(String[] args) {
        Empresa empresa = new Empresa();

        Empleado empleado1 = new Empleado("Juan", 1, 30000);
        Gerente gerente1 = new Gerente("Ana", 2, 50000, 10000);

        empresa.añadirEmpleado(empleado1);
        empresa.añadirEmpleado(gerente1);

        empresa.mostrarEmpleados();
    }
}
Previous05.6-Generales de POONext[Solución] Aventuras en el Laberinto Encantado

Last updated 1 year ago