Autor Tema: CU00633B Entrega nº33 del curso "Aprender programación Java desde cero"  (Leído 3402 veces)

MrClassic

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
Entrega N° 33, quedo en espera de sus recomendaciones y/o correcciones.
Código: [Seleccionar]
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");     
    }
}
Quedo en espera de sus recomendaciones y/o correcciones.

Gracias.

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
 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!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

Fco. Gómez

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 11
    • Ver Perfil
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.

MrClassic

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
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.
Quedo en espera de sus recomendaciones y/o correcciones.

Gracias.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".