Hola, pega el código de que dispongas para poder revisarlo. Si no dispones de código ni sabes cómo empezar a crearlo puedes seguir las indicaciones de este curso:
http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188Por lo que se ve en el enunciado te piden que definas interfaces y luego clases que implementen las interfaces, por ejemplo la interface Profesor y la clase que implementa la interface ProfesorImpl. Pero el enunciado no parece que esté bien redactado.
Los pasos que habría que dar serían (aproximadamente):
Crear la interface Asignatura (definiendo la signatura de sus métodos).
Crear la clase AsignaturaImpl con sus atributos correspondientes, como el atributo créditos. Ahí tendrás el método getCreditos
Crear la interface Profesor (definiendo la signatura de sus métodos)
Crear la clase ProfesorImpl con sus atributos correspondientes y sobreescribiendo los métodos definidos en la interface. Un atributo de esta clase será listaAsignaturas, que contiene la lista de asignaturas impartidas por el profesor.
Crear la clase DepartamentoImpl, uno de cuyos atributos será una lista de profesores. También puedes tener como atributo una lista de asignaturas, que serán las asignaturas que imparte el departamento.
En esta clase tendrías el método solicitado, que podría llamarse boolean existeProfesorAsignadoAAsignatura (Asignatura asignatura) { }
Dentro de ese método tendrías que:
- Recorrer los profesores dentro del departartamento (por ejemplo con un iterator)
- Para cada profesor recorrer su lista de asignaturas y comprobar si el código o nombre de asignatura es igual al código o nombre de asignatura del parámetro recibido por el método. Si es así, debes hacer un return true;
Si el recorrido termina y no se ha encontrado ningún profesor asignado a la asignatura debes hacer un return false;
Como sugerencia, vete pegando el código a medida que lo vayas creando para poder ir orientándote.
Saludos