Autor Tema: Dudas de estilo sobre código del ejercicio CU00633B Java siendo sintaxis buena  (Leído 2759 veces)

maxplanck

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Hola.  Aquí les dejo el código que he escrito para el ejercicio CU00633B. Está correcto de sintaxis y funciona bien. Mis dudas son más bien de estilo:

1-¿Se considera correcta la manera de calcular los años directamente en el System.out o es mejor el uso de variables intermedias como he visto por ahí?(líneas 60-62).

2- ¿ Se puede usar un método get como el que pongo en el comentario o es mala práctica?(líneas 63-68).

Gracias anticipadas a todos.

 
Código: [Seleccionar]
public class Medico {
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private int dni;
    private String especialidad;
    public Medico () {
        nombre = "";
        apellidos = "";
        edad = 0;
        casado = false;
        dni = 0;
        especialidad = "";
    }

    public void setNombre (String valorNombre){
        nombre = valorNombre;
        System.out.println ("El nuevo nombre es " + nombre);
    }

    public void setApellidos (String apellido1,String apellido2) /*Esto es para probar pasar más de un parámetro*/{
        apellidos = apellido1 + " " + apellido2;
        System.out.println ("Los nuevos apellidos son " + apellidos);
    }

    public void setEdad (int valorEdad) {
        edad = valorEdad;
        System.out.println ("La nueva edad es " + edad);
    }

    public void setCasado (boolean valorCasado) {
        casado = false;
        System.out.println ("El nuevo estado es " + valorCasado);
    }

    public void setDni (int valorDni) {
        dni = valorDni;
        System.out.println ("El nuevo Dni es " + valorDni);
    }

    public void setEspecialidad (String valorEspecialidad) {
        especialidad = valorEspecialidad;
        System.out.println ("La nueva especialidad es " + valorEspecialidad);
    }

    public String getNombre (){return nombre;}

    public String getApellidos () {return apellidos;}

    public int getEdad () {return edad;}

    public boolean getCasado () {return casado;}

    public int getDni () {return dni;}

    public String getEspecialidad () {return especialidad;}

    public void calcMultEdad () {
        System.out.println ("El médico de nombre " + nombre + " y con especialidad " + especialidad + " tendrá una edad mútiplo de 5 dentro de " + (5 - (edad % 5)));
         }//No sé las recomendaciones para establecer saltos de línea
         /*También funciona lo siguiente
          * public String calcMultEdad () {
          *     System.out.println ("El médico de nombre " + nombre + " y con especialidad " + especialidad + " tendrá una edad mútiplo de 5 dentro de " + (5 - (edad % 5)));
          *     return "";
          *     }
          */
}



« Última modificación: 18 de Diciembre 2016, 20:09 por Alex Rodríguez »

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:Dudas sobre código del ejercicio CU00633B
« Respuesta #1 en: 14 de Diciembre 2016, 06:29 »
Buenos días.

Con respecto al punto 1,serían correctas las dos formas.
En cuanto al punto 2,el método :
Código: [Seleccionar]
public String calcMultEdad () {
              System.out.println ("El médico de nombre " + nombre + " y con especialidad " + especialidad + " tendrá una edad mútiplo de 5 dentro de " + (5 - (edad % 5)));
              return "";
              }

no tendría mucho sentido.Este método te imprimiría por consola  lo que hay dentro del
 System.out.println y además devolvería un String con el valor "".
Un saludo

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Hola me gustaría saber si mi codigo esta bien.

Código: [Seleccionar]
package Ejercicios_POO;

public class Medico
{
 

private String nombre;
private String apellido;
private int edad;
private boolean casado;
private String id;
private String especialidad;

   
   // Metodo constructor con valores por defecto
     public Medico()
     {
    nombre="";
    apellido="";
    edad=0;
    casado=false;
    id="desconocido";
    especialidad="desconocida";
   
     }

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) {
this.apellido = apellido;
}

public int getEdad() {
return edad;
}

public void setEdad(int edad) {
this.edad = edad;
}

public String isCasado() {

if(casado){
return "El médico está casado";
}else{
return "El médico no está casado";
}
}

public void setCasado(String casado) {
if(casado.equalsIgnoreCase("si")){
this.casado=true;
}else{
this.casado=false;
}
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getEspecialidad() {
return especialidad;
}

public void setEspecialidad(String especialidad) {
this.especialidad = especialidad;
}
public void setFaltante(){
int div,falta;
div=edad%5;
falta=5-div;
System.out.print("El médico "+nombre+" tiene "+edad+" años. Para tener una edad multiplo de 5 le faltan "+falta+" años.");
}
   
     
 
}

package Ejercicios_POO;
import java.util.Scanner;
public class ejeMedico {

public static void main(String[] args) {
// TODO Auto-generated method stub
             Medico medico1=new Medico();
             Scanner lee=new Scanner(System.in);
             String nombre,apellido,id,especialidad;
             int edad;
             String casado;
             
             System.out.print("Introduce Nombres del médico: ");
             nombre=lee.nextLine();
             System.out.print("Introduce Apellidos del médico: ");
             apellido=lee.nextLine();
             System.out.print("Introduce su ID: ");
             id=lee.next();
             System.out.print("Introduce su especialidad: ");
             especialidad=lee.next();
             System.out.print("¿Es casado? ");
             casado=lee.next();
             System.out.print("Introduce EDAD: ");
             edad=lee.nextInt();
             
                  medico1.setNombre(nombre);
                  medico1.setApellido(apellido);
                  medico1.setId(id);
                  medico1.setEspecialidad(especialidad);
                  medico1.setCasado(casado);
                  medico1.setEdad(edad);
                 
                  medico1.setFaltante();
}

}
« Última modificación: 14 de Enero 2017, 18:49 por Alex Rodríguez »

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Buenos días.

Varias cosas.

En el ejercicio se pedía hacerlo todo en una clase y comprobar los resultados creando objetos.

Has utilizado if que aún no se ha dado a estas alturas del curso. Para un correcto seguimiento del curso los ejercicios se deben realizar solo con lo que se haya visto.

Tu clase Medico debería quedar:

Código: [Seleccionar]
public class Medico2
{

    private String nombre;
    private String apellido;
    private int edad;
    private boolean casado;
    private String id;
    private String especialidad;

    // Metodo constructor con valores por defecto
    public Medico2()
    {
        nombre="";
        apellido="";
        edad=0;
        casado=false;
        id="desconocido";
        especialidad="desconocida";

    }

    public String getNombre() {return nombre;}   

    public String getApellido() {return apellido;}

    public boolean getCasado() { return casado;}

    public String getId() {return id;}

    public int getEdad() {return edad;}
   
    public String getEspecialidad() {return especialidad;}

    public void setNombre(String nombre) {this.nombre = nombre;}

    public void setApellido(String apellido) {this.apellido = apellido;}

    public void setEdad(int edad) {this.edad = edad;}   

    public void setCasado(boolean casado) {this.casado=casado;}

    public void setId(String id) {this.id = id;}   

    public void setEspecialidad(String especialidad) {this.especialidad = especialidad;}

    public void calculoParaMultiploEdad(){       
        System.out.println ("El médico de nombre " + nombre + " y con especialidad " + especialidad + " tendrá una edad mútiplo de 5 dentro de " + (5 - (edad % 5)));
    }     
}

Con esto quedaría resuelto el ejercicio.

Ya que la incluiste,tu clase Main quedaría:
Código: [Seleccionar]
import java.util.Scanner;
public class ejeMedico {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Medico2 medico1=new Medico2();
        Scanner lee=new Scanner(System.in); 
        System.out.print("Introduce Nombres del médico: ");       
        medico1.setNombre(lee.nextLine());
        System.out.print("Introduce Apellidos del médico: ");
        medico1.setApellido(lee.nextLine());
        System.out.print("Introduce su ID: ");       
        medico1.setId((lee.nextLine()));
        System.out.print("Introduce su especialidad: ");       
        medico1.setEspecialidad((lee.nextLine()));
        System.out.print("¿Es casado? ");
        if (lee.nextLine().equalsIgnoreCase("Si")){medico1.setCasado(true);}
        System.out.print("Introduce EDAD: ");       
        medico1.setEdad((lee.nextInt()));
        medico1.calculoParaMultiploEdad();
    }
}
Un saludo
« Última modificación: 14 de Enero 2017, 18:50 por Alex Rodríguez »

 

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