Aquí tienes dos puntos importantes a tener en cuenta.
1ro: Según lo que especifica en el enunciado de este ejercicio, has declarado algunas variables de mas. Tu intención es guardar el valor anterior a un cambio sobre una variable, creando una variable adicional que guarde dicho anterior valor. Esto se puede conseguir utilizando solo una variable (las variables como: nomAnt no son necesarias) y mas adelante te mostrare como hacerlo.
2do: Si analizas lo que se pide en el ejercicio, te darás cuenta que los mensajes a mostrar por pantalla, debiste de incluirlos en los métodos setters y no en los getters como has hecho, aunque mas adelante, conforme avances en el curso, te darás cuenta que tanto los métodos getters como los métodos setters ningunos deben de mostrar mensajes por pantalla al ser invocados, sino que mas bien, deben de limitarse a realizar única y exclusivamente su tarea. Por ahora esta "mala practica" se presenta en esta entrega del curso, con la finalidad de ir familiarizando al alumno con lo que es imprimir mensajes por pantalla.
A continuación dejo un código de ejemplo, para que lo analices y tengas una idea de como imprimir ambos estados (pasado y presente) de una variable:
public class Medico
{
//Atributo de clase
private String nombre;
//Constructor general
public Medico()
{
nombre = "Desconocido";
}
//Setter
public void setNombre(String nom)
{
System.out.println("Ha cambiado el nombre del medico: "+ nombre);//Esta linea imprime el valor de la variable nombre antes de que cambie su valor
nombre = nom;//Esta linea cambia el valor de la variable nombre
System.out.println("El nuevo nombre es: " + nombre);//Esta linea imprime el nuevo valor de la variable nombre en la misma linea
}
//Getter
public String getNombre()
{
return nombre;//Un metodo getter solo debe devolver un valor especifico y no realizar ninguna otra tarea.
}
}//Fin de la clase
Saludos!