Hola Guille
Tu ejercicio compila sin errores, pero no hace todo lo que se pide en su enunciado
Mira:
Aparte de los atributos que se piden, creas otros que tu necesitas
private int multiploEdad, resto;
Si los necesitas, vale. Pero estas variables no hacía falta que fueran atributos de la clase, podian ser variables internas del método donde los utilizas
public int calculoParaMultiploEdad()
--------------------
Se pide
Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos.
Asignar los valores por defecto a los atributos de la clase, es esto:
Atributos de tipo String se inicializan con cadena vacía
nombre= "";
Atributos de tipo int, se inicalizan a cero
edad = 0;
Atributos de tipo float,se inicalizan a cero
sujperficie = 0.0f;
(la f obliga al compilador a tomar el valor como float, sino lo tomaría como double)
Atributos de tipo double, se inicalizan a cero
distancia = 0.0;
Atributos de tipo boolean, se inicializan a false
casado = false;
Los métodos set y get están bien excepto el
public void setEspecialidad(String suEspecialidad)
Los métodos set y get, no deberían mostar mensajes por pantalla.
Si en un ejercicio te lo pedimos así, hazlo.
Nuestra intención es que veas que al invocar ese método, el mensaje por pantalla te demuestra que el programa pasa por ese método haciendo todo el trabajo que le hemos codificado en su interior.
Además el mensaje que muestra ahora, confunde. Presenta estos mensajes.
Ha cambiado la especialidad del médico de nombre NOMBRE La nueva especialidad es ANTIGUAESPECIALIDAD
Ha cambiado la especialidad del doctor: NOMBRE APELLIDOS De: ANTIGUAESPECIALIDAD A: NUEVAESPECIALIDAD
----
Define un método de nombre "calculoParaMultiploEdad" que no recibe parámetros y es tipo procedimiento cuyo cometido será el siguiente:
De tipo procedimiento como sabes quiere decir que no devuelve valor.
La signatura del método debería ser:
public void calculoParaMultiploEdad()
Cambiar el valor devuelto (int) por (void)
Así, no estas obligado a poner el return
Finalmente, en este método calculoParaMultiploEdad() haces el cálculo sin usar el operador % (modulo)
Fijate, que casi se te dice como hacerlo en el enunciado del ejercicio.
Mira como lo han resuelto otros compañeros del foro
https://www.aprenderaprogramar.com/foros/index.php?topic=1068.msg5984#msg5984Además, para cumplir con el ejercicio, deberías llamar al método calculoParaMultiploEdad() desde dentro del método setEdad(int suEdad)
Para que, siempre que cambias la edad del médico, te diga también cuántos años le faltan para que su edad sea múltiplo de 5
Si algo de lo que te decimos no se entiende. Pregunta, e intentaremos responder con detalle
Saludos