Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: B4rduck en 29 de Octubre 2014, 05:02
-
Si bien es cierto que el código que publico en este tema es muy parecido al anterior a diferencia del método con el cual se pide calcular el múltiplo de la edad del objeto, quisiera aclarar que no estoy del todo seguro de haber entendido el ejercicio y como siemre agradeceré todos sus comentarios.
public class medico {
private String nombre; // Nombre del médico
private String apellidos; // Apellidos del médico
private int edad; // Edad del médico
private boolean casado; // Estado civil del médico
private String numeroID; // Número de documento de identidad del médico
private String especialidad; // Área en la que se especializa el médico
private int calculoParaMultiploEdad;
// Constructor
public medico (){
nombre = "Desconocido";
apellidos = "Desconocido";
edad = 0;
casado = false;
numeroID = "Desconocido";
especialidad = "Desconocido";
} // Cierre del constructor
// Método para establecer el nombre del médico
public void setNombre (String valorNombre) {
nombre = valorNombre;
System.out.println("Se ha introducido el nombre del médico... El nombre del médico es: " + nombre);
} // Cierre del método
// Método para establecer los apellidos del médico
public void setApellidos (String valorApellidos) {
apellidos = valorApellidos;
System.out.println("Se han introducido los apellidos del médico... Los apellidos del médico son: " + apellidos);
} // Cierre del médotodo
// Método para establecer la edad del médico
public void setEdad (int valorEdad) {
edad = valorEdad;
System.out.println("Se ha introducido la edad del médico... La edad del médico es: " + edad);
} // Cierre del método
// Método para determinar y mostrar a través de cónsola la cantidad de años restantes para que el médico en cuestión tenga una edad múltiplo de 5.
public void setCalculoParaMultiploEdad (){
calculoParaMultiploEdad = (5-(edad%5));
System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + calculoParaMultiploEdad + " años");
} // Cierre del método
// Método para establecer el estado civil del médico
public void setCasado (boolean valorCasado) {
casado = valorCasado;
System.out.println("Se ha introducido el estado civil del médico... El médico está casado: " + casado);
} // Cierre del método
// Método para establecer el número de ID del médico
public void setNumeroID (String valorNumeroID) {
numeroID = valorNumeroID;
System.out.println("Se ha introducido el número de Identificación del médico... El ID es: " + numeroID);
} // Cierre del método
// Método para establecer la especialidad del médico
public void setEspecialidad (String valorEspecialidad) {
especialidad = valorEspecialidad;
System.out.println("Se ha introducido la especialidad del médico... La especialidad del médico es: " + especialidad);
} // Cierre del método
// Método para obtener los años restantes para que el médico tenga una edad múltiplo de 5
public int getCalculoParaMultiploEdad (){
return calculoParaMultiploEdad;
}// Cierre del método
// Método para obtener el nombre del médico
public String getNombre (){
return nombre;
}// Cierre del método
// Método para obtener los apellidos del médico
public String getApellidos (){
return apellidos;
}// Cierre del método
// Método para obtener la edad del médico
public int getEdad (){
return edad;
}// Cierre del método
// Método para obtener el estado civil del médico
public boolean getCasado (){
return casado;
}// Cierre del método
// Método para obtener el número de ID del médico
public String getNumeroID (){
return numeroID;
}// Cierre del método
// Método para obtener la especialidad del médico
public String getEspecialidad (){
return especialidad;
}// Cierre del método
}
Agradezco de antemano a quienes me proporcionen sus opiniones.
-
Hola Arja
Este ejercicio es parecido al anterior CU00632B.
Aunque en este no se pedia mostrar mensajes al cambiar los atributos, solo se pedía un método de tipo procedimiento 'calculoParaMultiploEdad' para que devolviera un mensaje tomando la edad como referencia.
Si relees el enunciado del ejercicio verás que no se pide la creación del atributo 'int calculoParaMultiploEdad'
Tu método
public void setCalculoParaMultiploEdad ()
realiza bien su cometido, informar de los años que faltan para que la edad del médico sea múltiplo de 5
En este ejercicio realizando unos pequeños cambios, quedará según lo requerido.
Cambios a realizar:
Quitar la declaración
private int calculoParaMultiploEdad;
Quitar los mensajes en los métodos set
Rebautizar el método
public void setCalculoParaMultiploEdad ()
por
public void calculoParaMultiploEdad ()
Quitar el método
public int getCalculoParaMultiploEdad ()
El resto perfecto
Saludos
-
Toni, a continuación dejo el código con las correcciones o cambios que pides. Y quiero mencionarte que al retirar la declaración "private int claculoParaMultiploEdad;" no se me permite realizar la compilación del código, recibo un error de sintaxis y justo por esa razón es que en primera instancia me vi obligado a crearla, por lo que no voy a perder la oportunidad para hacerte la pregunta: ¿Cuál será la razón?
Aquí el código:
public class medico {
private String nombre; // Nombre del médico
private String apellidos; // Apellidos del médico
private int edad; // Edad del médico
private boolean casado; // Estado civil del médico
private String numeroID; // Número de documento de identidad del médico
private String especialidad; // Área en la que se especializa el médico
// Constructor
public medico (){
nombre = "Desconocido";
apellidos = "Desconocido";
edad = 0;
casado = false;
numeroID = "Desconocido";
especialidad = "Desconocido";
} // Cierre del constructor
// Método para establecer el nombre del médico
public void setNombre (String valorNombre) {
nombre = valorNombre;
} // Cierre del método
// Método para establecer los apellidos del médico
public void setApellidos (String valorApellidos) {
apellidos = valorApellidos;
} // Cierre del médotodo
// Método para establecer la edad del médico
public void setEdad (int valorEdad) {
edad = valorEdad;
} // Cierre del método
// Método para determinar y mostrar a través de cónsola la cantidad de años restantes para que el médico en cuestión tenga una edad múltiplo de 5.
public void calculoParaMultiploEdad (){
calculoParaMultiploEdad = (5-(edad%5));
System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + calculoParaMultiploEdad + " años");
} // Cierre del método
// Método para establecer el estado civil del médico
public void setCasado (boolean valorCasado) {
casado = valorCasado;
} // Cierre del método
// Método para establecer el número de ID del médico
public void setNumeroID (String valorNumeroID) {
numeroID = valorNumeroID;
} // Cierre del método
// Método para establecer la especialidad del médico
public void setEspecialidad (String valorEspecialidad) {
especialidad = valorEspecialidad;
} // Cierre del método
// Método para obtener el nombre del médico
public String getNombre (){
return nombre;
}// Cierre del método
// Método para obtener los apellidos del médico
public String getApellidos (){
return apellidos;
}// Cierre del método
// Método para obtener la edad del médico
public int getEdad (){
return edad;
}// Cierre del método
// Método para obtener el estado civil del médico
public boolean getCasado (){
return casado;
}// Cierre del método
// Método para obtener el número de ID del médico
public String getNumeroID (){
return numeroID;
}// Cierre del método
// Método para obtener la especialidad del médico
public String getEspecialidad (){
return especialidad;
}// Cierre del método
}
Desde ya, te agradezco la atención prestada!
-
Hola Arja
Si tienes razón, tu nuevo código da el error:
cannot find symbol - variable calculoParaMultiploEdad
Es decir, no se encuentra la declaración para la variable calculoParaMultiploEdad
En parte es culpa mía, al decirte que eliminaras el atributo calculoParaMultiploEdad y cambiaras solo el nombre del método a: public void calculoParaMultiploEdad ()
Para solucionarlo, la primera línea del método la podíamos cambiar a lo siguiente
en lugar de:
calculoParaMultiploEdad = (5-(edad%5));
cambiar a:
int calculoParaMultiploEdad = (5-(edad%5));
Como ves creamos una variable de tipo int en el método, de esta forma desaparecerá el error.
Otra forma de hacerlo sin variable interna sería:
public void calculoParaMultiploEdad () {
System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + (5-(edad%5)) + " años");
} // Cierre del método
Cualquiera de las dos soluciones es válida.
Saludos
-
Excelente Toni, opté por la segunda opción, personalmente me pareció un tanto más práctica y efectivamente el error dejó de aparecer. Agradezco tu amable atención, también aprovecho para comentarte que gracias a tu ayuda pude aclarar ciertas dudas y en efecto, aprendí algo nuevo, gracias nuevamente!
Dejo el código ya corregido para que verifiques que hice las correcciones:
public class medico {
private String nombre; // Nombre del médico
private String apellidos; // Apellidos del médico
private int edad; // Edad del médico
private boolean casado; // Estado civil del médico
private String numeroID; // Número de documento de identidad del médico
private String especialidad; // Área en la que se especializa el médico
// Constructor
public medico (){
nombre = "Desconocido";
apellidos = "Desconocido";
edad = 0;
casado = false;
numeroID = "Desconocido";
especialidad = "Desconocido";
} // Cierre del constructor
// Método para establecer el nombre del médico
public void setNombre (String valorNombre) {
nombre = valorNombre;
} // Cierre del método
// Método para establecer los apellidos del médico
public void setApellidos (String valorApellidos) {
apellidos = valorApellidos;
} // Cierre del médotodo
// Método para establecer la edad del médico
public void setEdad (int valorEdad) {
edad = valorEdad;
} // Cierre del método
// Método para determinar y mostrar a través de cónsola la cantidad de años restantes para que el médico en cuestión tenga una edad múltiplo de 5.
public void calculoParaMultiploEdad (){
System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + (5-(edad%5)) + " años");
} // Cierre del método
// Método para establecer el estado civil del médico
public void setCasado (boolean valorCasado) {
casado = valorCasado;
} // Cierre del método
// Método para establecer el número de ID del médico
public void setNumeroID (String valorNumeroID) {
numeroID = valorNumeroID;
} // Cierre del método
// Método para establecer la especialidad del médico
public void setEspecialidad (String valorEspecialidad) {
especialidad = valorEspecialidad;
} // Cierre del método
// Método para obtener el nombre del médico
public String getNombre (){
return nombre;
}// Cierre del método
// Método para obtener los apellidos del médico
public String getApellidos (){
return apellidos;
}// Cierre del método
// Método para obtener la edad del médico
public int getEdad (){
return edad;
}// Cierre del método
// Método para obtener el estado civil del médico
public boolean getCasado (){
return casado;
}// Cierre del método
// Método para obtener el número de ID del médico
public String getNumeroID (){
return numeroID;
}// Cierre del método
// Método para obtener la especialidad del médico
public String getEspecialidad (){
return especialidad;
}// Cierre del método
}
Gracias y hasta la próxima!
Saludos!
-
Si Arja, ahora está perfecto. Nada que añadir.
Saludos