Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: MrClassic en 17 de Enero 2015, 09:44
-
Entrega N° 33, quedo en espera de sus recomendaciones y/o correcciones.
public class Medico33{
/*Properties*/
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private String numDocId;
private String especialidad;
private int restEdad;
private int añosParaMultiplo;
/*Constructor*/
public Medico33(){
nombre="Desconocido";
apellidos="Desconocidos";
edad=0;
casado=false;
numDocId="Desconocido";
especialidad="Desconocida";
}
/*Setters*/
public void setNombre (String valNombre){
nombre=valNombre;
}
public void setApellidos(String valApellidos){
apellidos=valApellidos;
}
public void setEdad(int valEdad){
edad=valEdad;
}
public void setCasado(boolean valCasado){
casado=valCasado;
}
public void setNumDocId(String valNumDocId){
numDocId=valNumDocId;
}
public void SetEspecialidad(String valEspecialidad){
especialidad=valEspecialidad;
}
/*Getters*/
public String getNombre(){
return nombre;
}
public String getApellidos(){
return apellidos;
}
public int getEdad(){
return edad;
}
public boolean getCasado(){
return casado;
}
public String getNumDocId(){
return numDocId;
}
public String getEspecialidad(){
System.out.println(especialidad);
return especialidad;
}
/*Metodo tipo procedimiento*/
public void multiploEdad (){
restEdad=edad%5;
añosParaMultiplo=5-restEdad;
System.out.println("El medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de 5 dento de " + añosParaMultiplo + " años");
}
}
-
Hola MrClassic!
En tu código veo una declaración e inicializacion de variables correctas, métodos setter correctos, métodos getters correctos, a excepción del método getEspecialidad() donde has incluido una tarea que debería realizar un método tipo procedimiento, ( System.out.println(especialidad); ) un método get (tipo funcion) solo debe de limitarse a devolver un valor u objeto, y no a realizar ninguna otra tarea.
Algo que también estuve observando en tu código es el nombre de la clase, veo que incluyes números, (33) esto no es que este mal, pero normalmente a los nombres de clases no se les incluye un numero (amenos de que quien programa encuentre algún motivo lógico) es mas claro si simplemente se llamara Medico y ya si creas algunos objetos de esta clase, podrías nombrarlos medico1, medico2,...medico33 ext, no es que este mal tu practica, solo es un consejo personal.
En el método multiploEdad () usas la variable tipo int restEdad; Porque no has creado los métodos set y get para esta variable si es una variable igual que las demás?? Mas adelante en la entrega CU0038B aprenderás a declarar variables locales a un método, cuyo uso solo es de iteres solo para ese método (en este caso multiploEdad ())
En resumen, tu ejercicio cumple con lo requerido.
Saludos!
-
Buenos días:
Antes de nada muchas gracias por el curso.
Al hilo de éste ejercicio, yo tampoco he creado los Set y Get para las variables de trabajo.
Por deformación, malas prácticas y málos hábitos. Mea culpa.
Sin embargo, me pregunto si realmente es necesario para la claridad del código ?
Dado que solo se utilizan en el método solicitado, entiendo la creación del set correspondiente para que se les asignen valor por defecto, inicializándolas a cero.
Pero crearles un método Get, "no lo veo tan claro".
A escepción de hacerlo para crear el hábito y así usemos unas pautas "uniformes" para el curso.
No es mi intención criticar, ojo, nada mas lejos.
Solo aclarar aún mas éstos aspectos.
Hace tiempo que no "pico tecla", estoy un poco oxidado, con telarañas y como indico, con malos hábitos.
Muchas gracias.
-
Cordial Saludo,
Hola, Muchas gracias por responder cada una de las publicaciones hechas hasta el momento, dando sus recomendaciones y correcciones. de verdad lo agradezco grandemente.
Lo del System.out.println(especialidad);, te cuento que fue una prueba que olvide borrar, (Sorry :)))
Entiendo por lo que he leído a continuación de esta entrega, que lo mas adecuado para la declaración de la variable restEdad, es que hubiese sido declarada como variable en el método multiploEdad().
Por los requerimientos de la entrega, no vi necesario implementar un metodo "Setter", ya que no necesito establecer valores para dicha variable puesto que es el resultado de un calculo que se obtiene con el valor de la edad ingresado por el usuario a través del método "public void setEdad(int valEdad)"
y de esta obtener el resto con el operador "%" y el entero "5".
de igual manera no encontré necesario implementar un método "Getter" ya que no es una información que sea muy relevante para mostrar.
Aclaro que en concordancia con Fco. Gómez, estoy aquí con el deseo de aprender las mejores practicas posibles, para evitar "Horrores" futuros.
quedo en espera de sus Recomendaciones y/o Correcciones.
Gracias nuevamente,
Slds.