Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Bcks7 en 10 de Septiembre 2016, 02:49
-
Dejo mi solución al ejercicio CU00633B del tutorial de aprendizaje básico de la programación orientada a objetos con Java, espero puedan revisarlo y comentarlo, gracias.
//CU00633B
public class Medico1{//Inicio de la class
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private String numeroDocumentoIdentidad;
private String especialidad;
public Medico1(){//Constructor
nombre = "";
apellidos = "";
edad = 0;
casado = false;
numeroDocumentoIdentidad = "";
especialidad = "";
}
//Metodo establecer valores
public void setNombre(String valorNombre){
nombre = valorNombre;
}
public void setApellidos(String valorApellidos){
apellidos = valorApellidos;
}
public void setEdad(int valorEdad){
edad = valorEdad;
}
public void setCasado(boolean valorCasado){
casado = valorCasado;
}
public void setNumeroDocumentoIdentidad(String valorNumeroDocumentoIdentidad){
numeroDocumentoIdentidad = valorNumeroDocumentoIdentidad;
}
public void setEspecialidad(String valorEspecialidad){
especialidad = valorEspecialidad;
}
public void calculoMultiploEdad(){
edad = edad/5*edad%5;
System.out.println("El medico de nombre " + nombre + " con especialidad" + especialidad + " tendra una edad multiplo de cinco dentro de " + edad + " años");
}
//Metodo obtener valores
public String getNombre(){return nombre;}
public String getApellidos(){return apellidos;}
public int getEdad(){return edad;}
public boolean getCasado(){return casado;}
public String getNumeroDocumentoIdentidad(){return numeroDocumentoIdentidad;}
public String getEspecialidad(){return especialidad;}
}//Cierre de la clase
/code]
-
Hola Bcks7 ten cuidado al pegar el código porque al final se te está quedando /code] y da error al intentar compilarlo.
No tienes el ejercicio bien resuelto
El primer problema:
edad = edad/5*edad%5; supone que estás modificando el valor del atributo edad, con lo cual ya queda modificado. Pero un método no debe modificar el valor de un atributo (excepto si es un método set, que entonces sí está destinado a ese fin).
El otro problema es que esa fórmula de cálculo no está bien
Por ejemplo si creo el objeto en BlueJ, establezco la edad 54 e invoco el método el resultado que me devuelve es:
El medico de nombre con especialidad tendra una edad multiplo de cinco dentro de 0 años
¿Has creado el objeto en BlueJ y hecho pruebas? Esto es fundamental que lo hagas: que crees objetos y hagas pruebas de tu código para comprobar si está bien.
¿Cómo crear objetos en BlueJ?
Haz click con botón derecho sobre el icono de la clase en la ventana donde tienes el diagrama de clases con todas las clases. Una vez el botón de menú contextual elige la opción new XXX por ejemplo new Medico()
Una vez haces esto te aparece en la esquina inferior izquierdo un rectángulo pequeño que representa el objeto. Si haces click con botón derecho sobre él puedes ir llamando sus métodos y hacer pruebas.
Saludos
-
Hola de nuevo, realice pruebas con edades entre 21 y 24 y me dio el resultado correcto pero voy a verificar con otras edades y corregir el error, gracias.
-
A ver, ahora si trabaja el método
//CU00633B
public class Medico1{//Inicio de la class
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private String numeroDocumentoIdentidad;
private String especialidad;
public Medico1(){//Constructor
nombre = "";
apellidos = "";
edad = 0;
casado = false;
numeroDocumentoIdentidad = "";
especialidad = "";
}
//Metodo establecer valores
public void setNombre(String valorNombre){
nombre = valorNombre;
}
public void setApellidos(String valorApellidos){
apellidos = valorApellidos;
}
public void setEdad(int valorEdad){
edad = valorEdad;
}
public void setCasado(boolean valorCasado){
casado = valorCasado;
}
public void setNumeroDocumentoIdentidad(String valorNumeroDocumentoIdentidad){
numeroDocumentoIdentidad = valorNumeroDocumentoIdentidad;
}
public void setEspecialidad(String valorEspecialidad){
especialidad = valorEspecialidad;
}
public void calculoMultiploEdad(){
int años = 0;
añosQueFaltan = 5-edad%5;
System.out.println("El medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de cinco dentro de " + añosQueFaltan + " años");
}
//Metodo obtener valores
public String getNombre(){return nombre;}
public String getApellidos(){return apellidos;}
public int getEdad(){return edad;}
public boolean getCasado(){return casado;}
public String getNumeroDocumentoIdentidad(){return numeroDocumentoIdentidad;}
public String getEspecialidad(){return especialidad;}
}//Cierre de la clase
-
Ahora bien. Saludos.