Hola, el código funciona bien y está bien escrito.
El atributo int calculoParaMultiploEdad; realmente sobra. Piensa que los atributos es información que debe llevar un objeto, imagínate que fuera una persona, tendría que saber su nombre, apellidos, edad, etc. pero no tendría que saber "calculoParaMultiploEdad".
¿Cómo hacerlo sin tenerlo como atributo?
Simplemente declarando una variable local dentro del método:
public void CalculoParaMultiploEdad (){
int calculoParaMultiploEdad;
calculoParaMultiploEdad = (5-(edad%5));
System.out.println ("el medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de 5 dentro de " + calculoParaMultiploEdad + " años.");
}
Sobre lo que preguntas, sería posible que cuando cambie la edad aparezca la información por pantalla, pero el enunciado del ejercicio lo que pide es que ese cálculo se haga cuando se invoque el método, tal y como tú lo has hecho.
Normalmente un método set ó get sólo harán estrictamente establecer el valor del atributo o devolverlo, sólo si el ejercicio te indica que haga algo más tendrías que añadirle algo más.
Saludos