Autor Tema: CU00633B curso aprender java  (Leído 2873 veces)

jaivcaba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
CU00633B curso aprender java
« en: 26 de Agosto 2014, 07:53 »
Buenas noches; Adjunto mi código para este ejercicio. De antemano muchas gracias a la comunidad por la ayuda.

Al final unas preguntas.


Código: [Seleccionar]
/**
 * Write a description of class Medico00 here.
 *
 * @author (jaivcaba)
 * @version (22/10/14)
 * Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String).
 * Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Define un método de nombre “calculoParaMultiploEdad”
 * que no recibe parámetros y es tipo procedimiento cuyo cometido será el siguiente: determinar cuántos años faltan para que la edad del médico sea múltiplo de 5 y mostrar un mensaje informativo por pantalla.
 * Por ejemplo si el médico tiene 22 años deberá en primer lugar obtener el resto de la división de 22 entre 5, que es 2. Ahora obtendrá los años que faltan para que el médico tenga una edad múltiplo de 5,
 * que serán 5-2 = 3 años. A continuación deberá mostrar un mensaje por consola del tipo: “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de … años”.
 * Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola, y que cuando cambias la edad aparece
 * correctamente el tiempo que falta para que la edad sea múltiplo de 5. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
 *
 */
public class Medico{   
    String nombre;
    String apellidos;
    int edad;
    boolean casado;
    String id;
    String especialidad;
    int calculoParaMultiploEdad;
    public Medico()
    {
        nombre = "";
        apellidos = "";
        edad = 0;
        casado = false;
        id = "000000000";
        especialidad = "ninguna";
        calculoParaMultiploEdad = 0;
    }
    public void setNombre (String dijiteNombre){
        nombre = dijiteNombre;
    }
    public void setApellidos (String dijiteApellidos){
        apellidos = dijiteApellidos;
    }
        public void setCasado (boolean digasiesCasado){
        casado = digasiesCasado;
    }
        public void setID (String dijiteid){
        id = dijiteid;
    }
    public void setEspecialidad (String dijiteEspecialidad){
        especialidad = dijiteEspecialidad;
    }
    public void setEdad (int dijiteEdad){
        edad = dijiteEdad;
    }
    public void CalculoParaMultiploEdad (){
       calculoParaMultiploEdad = (5-(edad%5));
       System.out.println ("el medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de 5 dentro de " + calculoParaMultiploEdad + " años.");
    }
        public String getNombre (){return nombre;}
    public String getApellidos (){return apellidos;}
    public int getEdad (){return edad;}
    public boolean getCasado (){return casado;}
    public String getId(){return id;}
    public String getEspecialidad (){return especialidad;}
    public int getCalculoParaMultiploEdad (){return calculoParaMultiploEdad;}
    }


preguntas.

¿el método pide que para cuando cambie la edad, este calcule el multiplo de edad E INMEDIATAMENTE aparezca en pantalla (imprima) el mensaje?. Eso es lo que pretendía hacer pero en realidad, después de mucho intentar solo logre que el mensaje apareciera luego de "invocar" el metodo Public void CalculoParaMultiplo... . ¿ Es posible hacerlo de forma que me ahorre el paso de invocar el método con lo visto hasta ahora?
basicamente intente jugar con el orden de los métodosy por ejemplo poner la orden System.out.print.... en el metodo setEdad y debajo el metodo CalculoParaMultiplo .... pero no funciono.

¿Debo esperar y seguir avanzando en el curso para lograrlo?

Gracias nuevamente y Disculpas por tantas preguntas siempre que posteo.  ;D
« Última modificación: 31 de Agosto 2014, 10:37 por Alex Rodríguez »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:CU00633B
« Respuesta #1 en: 26 de Agosto 2014, 09:50 »
Hola, el código funciona bien y está bien escrito.

El atributo int calculoParaMultiploEdad; realmente sobra. Piensa que los atributos es información que debe llevar un objeto, imagínate que fuera una persona, tendría que saber su nombre, apellidos, edad, etc. pero no tendría que saber "calculoParaMultiploEdad".

¿Cómo hacerlo sin tenerlo como atributo?

Simplemente declarando una variable local dentro del método:

    public void CalculoParaMultiploEdad (){
   int calculoParaMultiploEdad;
       calculoParaMultiploEdad = (5-(edad%5));
       System.out.println ("el medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de 5 dentro de " + calculoParaMultiploEdad + " años.");
    }

Sobre lo que preguntas, sería posible que cuando cambie la edad aparezca la información por pantalla, pero el enunciado del ejercicio lo que pide es que ese cálculo se haga cuando se invoque el método, tal y como tú lo has hecho.

Normalmente un método set ó get sólo harán estrictamente establecer el valor del atributo o devolverlo, sólo si el ejercicio te indica que haga algo más tendrías que añadirle algo más.

Saludos

jaivcaba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Re:CU00633B
« Respuesta #2 en: 30 de Agosto 2014, 06:48 »
Muchas gracias por comentar.... Seguiré tu recomendación.

 

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".