Hola Guille!
Primero te pongo en conocimiento: Cuando vallas a introducir código en el foro antes presiona el botón # (insertar código) que se encuentra arriba del campo de escritura, te saldrán unas etiquetas similares a estas: [cod][/cod] y a continuación procede a pegar el código de tu clase en medio de esas etiquetas.
Ejemp: [cod]aquíElCódigoDeTuClase(){...}[/cod]
En cuanto a tu ejercicio, te comento los siguientes puntos a mejorar o corregir:
Constructor de la clase: Aquí has inicializado la variable
int edad = 16; Lo correcto seria asignarle como valor inicial cero (0), así cada objeto medico que crees no nace con 16 años de edad, sino con 0 años de edad, y luego haciendo uso de su método set correspondiente, pues se le asigna un valor según sea necesario. También veo que has declarado una variable la cual no usas(
private boolean cambio) por tanto, creo que no estaría de mas eliminarla o también ponerla como comentario, ya que tienes una duda o inquietud relacionada a esta variable
.
En cuanto a tu comentario:/*public void cambioDeEspecialidad.....no supe como hacerlo queria poner una condicion dentro de "public void setEspecialidad" para cuando cambiara la especialidad asignar a cambio= true y poner el mensaje despues.
*/
Normalmente un método set no debería mostrar un mensaje por pantalla al ser invocado, lo correcto es que un método set solo cumpla su cometido el cual es realizar un procedimiento para asignar (o reasignar) un valor a una variable.
Tal vez te parezca confuso o contradictorio, cuando el propio enunciado del ejercicio pide lo siguiente:
En cada método, incluye una instrucción para que se muestre por consola un mensaje
informando del cambio. Por ejemplo si cambia la especialidad del médico, debe aparecer un mensaje
que diga: “Ha cambiado la especialidad del médico de nombre … . La nueva especialidad es: …”.
pero mas adelante comprenderás el porque de las cosas (todo a su tiempo)
A modo de ejercicio se podría aceptar esta "mala practica", si analizas lo que querías hacer con la variable "cambio" lo has conseguido solo con incluir el mensaje:"Ha cambiado la especialidad del médico..." solo que esta es la forma directa y mas lógica de expresar lo que quieres hacer, aunque entiendo perfectamente que es lo que quieres conseguir, esto lo dominaras cuando llegues a la entrega CU00636B que trata sobre estructuras condicionales (if con else vacio, if con else if, ect...) cuando domines esto veras cuan sencillo es lograr lo que "no has podido" lograr respecto a la variable "cambio"
Eso es todo de mi parte, y nada continua avanzando y así tu mismo encontraras las respuestas a muchas de las inquietudes que te surgen, pero que lo mas favorable en muchas ocasiones es que sean contestadas a su debido tiempo
Saludos!