Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Hquinn en 19 de Noviembre 2015, 12:38
-
Primer ejercicio con el que me lío... Aquí lo dejo y si alguien tiene tiempo y ganas me dice que he hecho mal xD que será bastante, porque no me sale.
Luego seguiré investigando! Gracias!
//Esta clase representa a un médico
public class Medico{ //Nombre de la clase
//primero declaramos los atributos
private String nombre;
private String apellido;
private int edad;
private boolean casado;
private String numeroDNI;
private String especialidad;
//Constructor. Cuando se cree un objeto medico se ejecutará este código
public Medico(){
nombre = "";
apellido = "";
edad = 0;
casado = false;
numeroDNI = "";
especialidad = "";
} //Cierre del constructor
//Método SETTER. Establece el nombre del médico
public void setNombre (String valorNombre){
nombre = valorNombre;
System.out.println("Se ha cambiado el nombre del médico. El nuevo nombre es: "+nombre);
}
//Método SETTER. Establece el apellido del médico
public void setApellido (String valorApellido){
apellido = valorApellido;
System.out.println("Se ha cambiado el apellido del médico. El nuevo apellido es: "+apellido);
}
//Método SETTER. Establece la edad del médico
public void setEdad (int valorEdad){
edad = valorEdad;
System.out.println("Se ha cambiado la edad del médico. La nueva edad es: "+edad);
}
//Método SETTER. Establece el estado civil del médico
public void setCasado (boolean valorCasado){
casado = valorCasado;
System.out.println("Se ha cambiado el estado civil del médico. El médico está casado: "+casado);
}
//Método SETTER. Establece el DNI del médico
public void setNumeroDNI (String valorNumeroDNI){
numeroDNI = valorNumeroDNI;
System.out.println("Se ha cambiado el DNI del médico. El nuevo DNI es: "+numeroDNI);
}
//Método SETTER. Establece la especialidad del médico
public void setEspecialidad (String valorEspecialidad){
especialidad = valorEspecialidad;
System.out.println("Se ha cambiado la especialidad del médico. La nueva especialidad es: "+especialidad);
}
//Método GETTER. Devuelve el nombre del médico
public String getNombre(){
return nombre;
}
//Método GETTER. Devuelve el nombre del apellido
public String getApellido(){
return apellido;
}
//Método GETTER. Devuelve la edad del médico
public int getEdad(){
return edad;
}
//Método GETTER. Devuelve el estado civil del médico
public boolean getCasado(){
return casado;
}
//Método GETTER. Devuelve el DNI del médico
public String getNumeroDNI(){
return numeroDNI;
}
//Método GETTER. Devuelve la especialidad del médico
public String getEspecialidad(){
return especialidad;
}
}
-
He conseguido que me salga el ejercicio pero creo que he hecho algo muy churro:
public class Medico{ //Esta clase representa un médico
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private String numeroDocumentoIdentidad;
private String especialidad;
private int multiplo;
private int resto;
private int resultado;
//Constructor. Cuando se cree un objeto tipo Medico, se ejecutará este código
public Medico(){
nombre = "";
apellidos = "";
edad = 0;
casado = false;
numeroDocumentoIdentidad = "";
especialidad = "";
multiplo = 5;
resto = 0;
resultado = 0;
}
//Método SETTER. Establece el nombre del médico
public void setNombre (String valorNombre){
nombre = valorNombre;
}
//Método SETTER. Establece la edad del médico
public void setEdad (int valorEdad){
edad = valorEdad;
}
//Método SETTER. Establece la especialidad del médico
public void setEspecialidad (String valorEspecialidad){
especialidad = valorEspecialidad;
}
//Método SETTER. Establece el resto de la división
/*public void setResto (int valorResto){
valorResto = multiplo % edad;
resto = valorResto;
}*/
//Método SETTER. Establece el resultado de los años restantes para que la edad del médico sea múltiplo de 5
public void cualEs (String valorCualEs){
System.out.println("El médico de nombre " + nombre + " con especialidad " + especialidad + " tendrá una edad múltiplo de 5 dentro de " + resultado + " años.");
}
//Método GETTER. Devuelve el nombre del médico
public String getNombre(){
return nombre;
}
//Método GETTER. Devuelve la edad del médico
public int getEdad(){
return edad;
}
//Método GETTER. Devuelve la especialidad del médico
public String getEspecialidad(){
return especialidad;
}
//Método GETTER. Devuelve el resto de la división entre la edad y el multiplo.
public int getResto(){
resto = edad%multiplo;
return resto;
}
//Método GETTER. Devuelve el resultado de la resta entre el multiplo y el resto.
public int getResultado(){
resultado = multiplo-resto;
return resultado;
}
}
Cuando le doy al método extraño ese que he hecho de cualEs, me da a elegir entre el nombre del médico y la especialidad, y le de al resultado que le de, me sale la respuesta bien.
A ver si alguien me dice que he hecho mal xD
-
Hola Hquinn
Te comento las cosas que tendrías que cambiar o mejorar:
Una clase representa algo, en este caso un médico, y un médico es caracterizado por sus atributos. Por ejemplo el nombre es un atributo, le podríamos preguntar al médico, ¿cuál es tu nombre? Sin embargo un médico no tiene un resto, no tiene sentido que le preguntemos ¿cuál es tu resto?
Todo lo que no tenga sentido que sean atributos no deben ser atributos (serán variables locales u otra cosa). En tu caso no tiene sentido que sean atributos multiplo, resto ni resultado.
Para orientarte en posibles soluciones a este ejercicio introduce el código CU00633B en el buscador del foro. En particular puedes orientarte por este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=2145.0 Revísalo y trata de comprender todo lo que hace para después plantear tú mismo la solución al ejercicio.
Si tienes dudas después de todo ello, consúltalas
Saludos