Semana 5 - Actividad: Clase Profesor en Java
Objetivo
Familiarizarte con los conceptos de constructores, sobrecarga de métodos y constructores, el uso del operador this, y la encapsulación en Java, aplicándolos en el contexto de un sistema educativo. Implementarás una clase Profesor que gestione información de docentes, sus asignaturas, y su carga horaria, con métodos más complejos y pruebas en un entorno educativo.
Instrucciones Generales
- Crea un proyecto en Java utilizando tu IDE favorito (Eclipse, IntelliJ, NetBeans, etc.).
- Implementa la clase
Profesorcon los atributos y métodos descritos a continuación. - Crea una clase
Cursopara interactuar conProfesor. - Prueba todas las funcionalidades en una clase
Maincon ejemplos realistas. - Usa el operador
thisy sobrecarga de constructores/métodos donde sea aplicable. - Sube tu código a un repositorio (opcional) o compártelo con tu instructor.
Ejercicio 1: Implementación de la Clase Profesor
Tarea
Crea una clase Profesor que represente a un docente en un sistema educativo. La clase debe incluir:
- Atributos:
nombre(String): Nombre completo del profesor.numeroIdentificacion(String): Cédula o DNI del profesor.salarioMensual(double): Salario mensual del profesor.horasSemanales(int): Horas semanales asignadas para dictar clases.-
esTiempoCompleto(boolean): Indica si el profesor es de tiempo completo o no. -
Constructores:
- Un constructor completo que reciba
nombre,numeroIdentificacion,salarioMensual,horasSemanales, yesTiempoCompleto. - Un constructor que reciba
nombre,numeroIdentificacion, ysalarioMensual, asignando20ahorasSemanalesyfalseaesTiempoCompleto. - Un constructor por defecto que inicialice los atributos con valores predeterminados (
"Sin nombre","Sin identificación",0.0,0,false). -
Un constructor que reciba solo
nombreynumeroIdentificacion, asignando valores predeterminados al resto (0.0,10,false). -
Métodos:
mostrarInformacion(): Muestra todos los datos del profesor en un formato claro.calcularSalarioAnual(): Sobrecarga este método:- Sin parámetros: Calcula el salario anual (
salarioMensual * 12). - Con un parámetro
bonoAnual(double): Calcula el salario anual incluyendo el bono. - Con un parámetro
meses(int): Calcula el salario para el número de meses indicado.
- Sin parámetros: Calcula el salario anual (
asignarHorasSemanales(int horas): Actualiza las horas semanales, con validación para no exceder 40 horas.evaluarCargaHoraria(): Sobrecarga este método:- Sin parámetros: Devuelve
"Carga normal"si las horas semanales son menores o iguales a 20, de lo contrario"Carga alta". - Con un parámetro
limiteHoras(int): Devuelve el estado según el límite proporcionado.
- Sin parámetros: Devuelve
asignarCurso(Curso curso): Registra al profesor en un curso, pasando el objeto actual (this) al métodoasignarProfesorde la claseCurso.-
calcularHorasAnuales(): Calcula las horas anuales asumiendo 40 semanas laborales por año. -
Clase
Curso: - Atributos:
nombreCurso(String) yprofesorAsignado(Profesor). -
Métodos:
asignarProfesor(Profesor profesor): Asigna un profesor al curso e imprime un mensaje de confirmación.mostrarInformacionCurso(): Muestra el nombre del curso y el nombre del profesor asignado (si existe).
-
Encapsulación:
- Todos los atributos deben ser
private. - Incluye getters y setters para todos los atributos, con validaciones en los setters (por ejemplo,
salarioMensualno puede ser negativo,horasSemanalesno puede exceder 40).
Ejercicio 2: Pruebas en la Clase Main
Tarea
En la clase Main, escribe un programa que:
- Cree cuatro instancias de
Profesorusando los cuatro constructores. - Muestre la información de cada profesor con
mostrarInformacion(). - Pruebe los tres métodos
calcularSalarioAnual()para un profesor. - Pruebe ambos métodos
evaluarCargaHoraria()para un profesor. - Calcule las horas anuales de un profesor con
calcularHorasAnuales(). - Asigne un profesor a un curso y muestre la información del curso.
- Modifique las horas semanales de un profesor con
asignarHorasSemanales()y muestre la información actualizada.