Hola a todos. Ruego revisen mi solución para este ejercicio. Gracias.
Saludos.
Chema.
/* Ejemplo - aprenderaprogramar.com */
//Esta clase representa a un Medico.
public class Medico { //El nombre de la clase
private String nombre; //Nombre de cada objeto medico
private String apellidos; // Apellidos de cada objeto medico
private int edad; // Edad de la medico
private boolean esCasado; // ¿Esta casado este medico?
private String numeroDocumentoIdentidad; // Numero de documento de identidad de cada medico
private String especialidad; // Especialidad de cada objeto medico
private String cadena; // Cadena auxiliar para no mostrar variables vacias en las impresiones de consola
private String cadena2; // Cadena auxiliar para no mostrar variables vacias en las impresiones de consola
private int anyosFaltan; // Calculo de años para el procedimiento calculParaMultiploEdad
//Constructor: cuando se cree un objeto medico se ejecutará el código que incluyamos en el constructor
public Medico () {
nombre = "";
apellidos = "";
edad = 0;
esCasado = false;
numeroDocumentoIdentidad = "";
especialidad = "";
cadena = "";
cadena2 = "";
anyosFaltan = 0;
} //Cierre del constructor … el código continúa …
//Método para establecer el nombre de un medico
public void setNombre (String valorNombre) {
if (this.nombre.equals("")) cadena = "desconocido";
else cadena = this.nombre;
System.out.println("Ha cambiado el nombre del médico " + cadena + ". El nuevo nombre es: " + valorNombre);
nombre = valorNombre; //El nombre del objeto medico adopta el valor que contenga valorNombre
} //Cierre del método
//Método para establecer los apellidos de un medico
public void setApellidos (String valorApellidos) {
if (this.nombre.equals("")) cadena = "desconocido";
else cadena = this.nombre;
if (this.apellidos.equals("")) cadena2 = "desconocidos";
else cadena2 = this.apellidos;
System.out.println("Han cambiado los apellidos del médico de nombre " + cadena + ". Los antiguos apellidos eran "+
cadena2 + " y los nuevos apellidos son: " + valorApellidos);
apellidos = valorApellidos; //Los apellidos del objeto medico adopta el valor que contenga valorApellidos
} //Cierre del método
//Método para establecer la edad de un medico
public void setEdad (int valorEdad) {
if (this.nombre.equals("")) cadena = "desconocido";
else cadena = this.nombre;
if (this.edad==0) cadena2 = "desconocida";
else cadena2 = this.edad + "";
System.out.println("Ha cambiado la edad del médico de nombre " + cadena + ". La antigua edad era "+
cadena2 + " y la nueva edad es: " + valorEdad);
edad = valorEdad; //La edad del objeto medico adopta el valor que contenga valorEdad
} //Cierre del método
//Método para establecer el esCasado de un medico
public void setCasado (boolean valorCasado) {
if (this.nombre.equals("")) cadena = "desconocido";
else cadena = this.nombre;
System.out.println("Ha cambiado el estado civil del médico de nombre " + cadena + ". El antiguo estado civil era "+
this.esCasado + " y el nuevo estado civil es: " + valorCasado);
esCasado = valorCasado; //El esCasado del objeto medico adopta el valor que contenga valorCasado
} //Cierre del método
//Método para establecer el numeroDocumentoIdentidad de un medico
public void setDNI (String valorDNI) {
if (this.nombre.equals("")) cadena = "desconocido";
else cadena = this.nombre;
if (this.numeroDocumentoIdentidad.equals("")) cadena2 = "desconocido";
else cadena2 = this.numeroDocumentoIdentidad;
System.out.println("Ha cambiado el numero de documento de identidad del médico de nombre " + cadena + ". El antiguo numero de documento de identidad era "+
cadena2 + " y el nuevo documento de identidad es: " + valorDNI);
numeroDocumentoIdentidad = valorDNI; //El numeroDocumentoIdentidad del objeto medico adopta el valor que contenga valorDNI
} //Cierre del método
//Método para establecer la especialidad un medico
public void setEspecilidad (String valorEspecialidad) {
if (this.nombre.equals("")) cadena = "desconocido";
else cadena = this.nombre;
if (this.especialidad.equals("")) cadena2 = "desconocida";
else cadena2 = this.especialidad;
System.out.println("Ha cambiado la especialidad del médico de nombre " + cadena + ". La antigua especialidad era "+ cadena2
+" y la nueva especialidad es: " + valorEspecialidad);
especialidad = valorEspecialidad; // La especilidad del objeto medico adopta el valor que contenga valorEspecialidad
} //Cierre del método
//Método para obtener el nombre del objeto medico
public String getNombre () { return nombre; } //Cierre del método
//Método para obtener los apellidos del objeto medico
public String getApellidos () { return apellidos; } //Cierre del método
//Método para obtener la edad del objeto medico
public int getEdad () { return edad; } //Cierre del método
//Método para obtener el esCasado del objeto medico
public boolean getEsCasado () { return esCasado; } //Cierre del método
//Método para obtener el numeroDocumentoIdentidad del objeto medico
public String getDNI () { return numeroDocumentoIdentidad; } //Cierre del método
//Método para obtener el especialidad del objeto medico
public String getEspecialidad () { return especialidad; } //Cierre del método
// Procedimiento para calcular los años hasta el proximo multiplo de 5.
public void calculoParaMultiploEdad (){
if (this.edad>0) {
if (this.edad%5 == 0) anyosFaltan=0;
else anyosFaltan = 5- (this.edad % 5);
}
else{
System.out.println("La edad del médico debe ser mayor de 0 años y El médico de nombre " + this.nombre + " con especialidad " + this.especialidad +
" tiene una edad actualmente de: " + this.edad + " años. Modifica la edad y vuelve a ejecutar este procedimiento.");
}
if (anyosFaltan == 0){
System.out.println("El médico de nombre " + this.nombre + " con especialidad " + this.especialidad +
" tiene una edad múltiplo de 5 actualmente.");
}else{
System.out.println("El médico de nombre " + this.nombre + " con especialidad " + this.especialidad +
" tendrá una edad múltiplo de 5 dentro de " + anyosFaltan + " años.");
}
} //Fin del procedimiento calculoParaMultiploEdad
} //Cierre de la clase