Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: maxplanck en 13 de Diciembre 2016, 19:21
-
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.
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 "";
* }
*/
}
-
Buenos días.
Con respecto al punto 1,serían correctas las dos formas.
En cuanto al punto 2,el método :
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
-
Hola me gustaría saber si mi codigo esta bien.
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();
}
}
-
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:
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:
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