import [Link].
ArrayList;
import [Link];
import [Link];
// Clase Departamento
class Departamento {
private String nombre;
private int id;
private List<Empleado> empleados;
public Departamento(String nombre, int id) {
[Link] = nombre;
[Link] = id;
[Link] = new ArrayList<>();
}
public void agregarEmpleado(Empleado empleado) {
[Link](empleado);
}
public List<Empleado> getEmpleados() {
return empleados;
}
public String getNombre() {
return nombre;
}
public int getId() {
return id;
}
}
// Clase Empleado
class Empleado {
private String nombre;
private String idDocumento;
private double salario;
private String rol;
private Departamento departamento;
private List<ReporteDesempeño> reportes;
public Empleado(String nombre, String idDocumento, double salario, String rol,
Departamento departamento) {
[Link] = nombre;
[Link] = idDocumento;
[Link] = salario;
[Link] = rol;
[Link] = departamento;
[Link] = new ArrayList<>();
[Link](this);
}
public void agregarReporte(ReporteDesempeño reporte) {
[Link](reporte);
}
public List<ReporteDesempeño> getReportes() {
return reportes;
}
public String getNombre() {
return nombre;
}
public String getIdDocumento() {
return idDocumento;
}
public double getSalario() {
return salario;
}
public String getRol() {
return rol;
}
public Departamento getDepartamento() {
return departamento;
}
}
// Clase ReporteDesempeño
class ReporteDesempeño {
private Empleado empleado;
private Date fechaEvaluacion;
private double calificacion;
private String observaciones;
public ReporteDesempeño(Empleado empleado, Date fechaEvaluacion, double
calificacion, String observaciones) {
[Link] = empleado;
[Link] = fechaEvaluacion;
[Link] = calificacion;
[Link] = observaciones;
[Link](this);
}
public Empleado getEmpleado() {
return empleado;
}
public Date getFechaEvaluacion() {
return fechaEvaluacion;
}
public double getCalificacion() {
return calificacion;
}
public String getObservaciones() {
return observaciones;
}
}
// Clase principal para pruebas
public class GestionEmpleados {
public static void main(String[] args) {
Departamento dptoTI = new Departamento("Tecnología", 1);
Empleado empleado1 = new Empleado("Carlos Pérez", "1012345678", 5000000,
"Desarrollador", dptoTI);
ReporteDesempeño reporte1 = new ReporteDesempeño(empleado1, new Date(),
4.5, "Buen desempeño en proyectos de software.");
[Link]("Empleado: " + [Link]());
[Link]("Departamento: " +
[Link]().getNombre());
[Link]("Última evaluación: " +
[Link]().get(0).getCalificacion());
}
}