Hola rlopez
Tu ejercicio cumple las peticiones.
Declaras atributos correctamente. Pero no los inicializas a sus valores por defecto.
Los valores por defecto para los atributos son:
String a cadena vacía ""
int a cero 0
double a cero 0.0
float a cero 0.0f
boolean a false
Los getters están perfectos.
Los setters también están bien. Hacen lo solicitado, cambiar el valor del atributo y presentar el mensaje por consola.
Presentar este mensaje, no es tarea habitual de un setter. Se os ha pedido aquí para que comprobeis que Java ejecuta todo el código que hay dentro del método (incluso presentar mensajes)
Aunque has trabajado bastante para crear un setCasado que lo controla todo. Te pongo un método con menos código
public void setCasado (boolean valorCasado){
System.out.println("El medico de nombre \"" + nombre + "\" ha cambiado su atributo casado de " + casado + ", a " + valorCasado);
casado = valorCasado;
}
Saludos