Autor Tema: Java. Operadores aritméticos. Ejercicio afianzar conceptos POO tutorial CU00633B  (Leído 2616 veces)

rocio3c

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Hola! He hecho el ejercicio de operadores aritméticos, creo que he entendido bien el código y cómo funciona, he visto algunos ejercicios resueltos en el foro, pero al crear un objeto y modificar la edad no me aparece la ventana con el mensaje. ¿Alguien puede revisarlo y decirme qué me está fallando?

Gracias!

Código: [Seleccionar]
/**
 * Write a description of class Médico here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Médico
{
    // instance variables - replace the example below with your own
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private String numeroDocumentoIdentidad;
    private String especialidad;

    /**
     * Constructor for objects of class Médico
     */
    public Médico()
    {
        // initialise instance variables
        nombre = "Rocío";
        apellidos = "Vázquez Ibáñez";
        edad = 28;
        casado = false;
        numeroDocumentoIdentidad = "53412411V";
        especialidad = "enferma";
    }

    public void setNombre(String valorNombre) {
        nombre = valorNombre;
    }

    public void setApellido(String ValorApellido) {
        apellidos = ValorApellido;
    }
   
    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 calculoParaMultiploEdad () {     
        int añosQueFaltan;
        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");       
    }
       
    public String getNombre() {
        return nombre;
    }

    public String getApellido() {
        return apellidos;
    }

    public int getEdad() {
        return edad;
    }

    public boolean isCasado() {
        return casado;
    }

    public String getNumeroDocumentoIdentidad() {
        return numeroDocumentoIdentidad;
    }

    public String getEspecialidad() {
        return especialidad;  }
    }
   
« Última modificación: 14 de Mayo 2017, 19:16 por Alex Rodríguez »

Ivan9210

  • Sin experiencia
  • *
  • Mensajes: 10
    • Ver Perfil
Re:Ejercicio (CU00633B)
« Respuesta #1 en: 06 de Marzo 2017, 20:42 »
Hola rocio3c,

Lo que pasa es de que en cada método de set (setters), debes colocar la linea de imprimir en consola con la leyenda deseada System.out.println ("Se ha actualizado la edad a: " + nombreVariable);, una vez hecho esto en todos los métodos, al invocar los setters, te abrirá la consola con el mensaje de actualización:


Anexo el código que yo hice y agradecería comentarios o sugerencias hacia el también.
Código: [Seleccionar]
//Crear clase Medico
public class Medico{
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private String numeroDocumentoIdentidad;
    private String especialidad;
   
    //Crear constructor Medico
    public Medico(){
        nombre = "";
        apellidos = "";
        edad = 0;
        casado = false;
        numeroDocumentoIdentidad = "";
        especialidad = "";
    }//Cerrar constructor
   
    //Crear métodos de procedimiento
    public void setNombre(String valorNombre){
        nombre = valorNombre;
        System.out.println("Se ha actualizado el nombre a: " + nombre);
    }

    public void setApellidos(String valorApellidos){
        apellidos = valorApellidos;
        System.out.println("Se han actualizado los apellidos a: " + apellidos);
    }
   
    public void setEdad(int valorEdad){
        edad = valorEdad;
        System.out.println("Se ha actualizado la edad a: " + edad);
    }
   
    public void setCasado(boolean valorCasado){
        casado = valorCasado;
        System.out.println("Se ha actualizado el estado civil a: " + casado);
    }
   
    public void setNumeroDocumentoIdentidad(String valorNumeroDocumentoIdentidad){
        numeroDocumentoIdentidad = valorNumeroDocumentoIdentidad;
        System.out.println("Se ha actualizado el número del documento de identidad a: " + numeroDocumentoIdentidad);
    }
   
    public void setEspecialidad(String valorEspecialidad){
        especialidad = valorEspecialidad;
        System.out.println("Se ha actualizado la especialidad a: " + especialidad);
    }
   
    public void calculoParaMultiploEdad () {     
        int aniosRestantes;
        aniosRestantes = 5-(edad%5);
        System.out.println("El medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de cinco dentro de " + aniosRestantes + " años");       
    }
   
    //Crear métodos de función
    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;}

}//Cerrar clase

Saludos.
« Última modificación: 06 de Marzo 2017, 21:57 por Ivan9210 »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Ejercicio (CU00633B)
« Respuesta #2 en: 06 de Marzo 2017, 23:41 »
Hola.

Los ejercicios que presentáis son correctos, a rocio3c corroborar lo que comenta Ivan9210, solo te faltaría la línea con el "System.out.println..." en cada método set.

También decir que los métodos setter de aquí en adelante en el curso, no deben de llevar esa línea, en este ejercicio se pide así para poder hacer una comprobación, pero normalmente los métodos seter solo se usan para establecer el valor de un atributo.

Decirte también que no es aconsejable usar palabras acentuadas para nombres de clases, métodos, atributos, etc., podrían generar errores.

Saludos.

rocio3c

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:Java. Operadores aritméticos. Ejercicio (CU00633B)
« Respuesta #3 en: 07 de Marzo 2017, 13:04 »
Muchas gracias Ivan y Pedro por vuestras respuestas y consejos.

El tema es que yo ya no pretendía en este ejercicio, que me aparezca el mensaje que se modificó cualquier atributo (nombre, apellidos, edad, especialidad, etc...) del objeto, ejercicio que ya había realizado anteriormente.

Sino que sólo cuándo se modifica la edad, aparezca el mensaje de que: "El medico de nombre " + nombre + " con especialidad " + especialidad + " tendra una edad multiplo de cinco dentro de " + aniosRestantes + " años")

Pero acabo de caer en la cuenta que no había entendido bien cómo se refleja en el objeto el concepto de "crear un método", porque ahora caigo (se nota que soy principiante) que efectivamente el objeto ahora dispone de una función nueva para calcular los años que faltan para una edad multiplo de 5 y que es haciendo click sobre ella que entonces aparece el mensaje y correctamente configurado. 

Sin duda esta clase me ha ayudado a afianzar algunos cuantos conceptos importantes!

Gracias por vuestro tiempo!

 

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