Autor Tema: BlueJ cómo crear objetos e invocar sus métodos hacer pruebas ejercicio CU00633B  (Leído 5422 veces)

Bcks7

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

Código: [Seleccionar]
//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]
« Última modificación: 11 de Septiembre 2016, 20:47 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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

Bcks7

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

Bcks7

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 48
    • Ver Perfil
A ver, ahora si trabaja el método

Código: [Seleccionar]
//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

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Ahora bien. Saludos.

 

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