Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: B4rduck en 29 de Octubre 2014, 04:52
-
Hola a todos!
Quiero dejar mi solución al ejercicio del apartado correspondiente al asunto de este tema y como siempre, estoy abierto a todos tipo de sugerencias, comentarios, observaciones, etc. public class medico {
private String nombre; // Nombre del médico
private String apellidos; // Apellidos del médico
private int edad; // Edad del médico
private boolean casado; // Estado civil del médico
private String numeroID; // Número de documento de identidad del médico
private String especialidad; // Área en la que se especializa el médico
// Constructor
public medico (){
nombre = "Desconocido";
apellidos = "Desconocido";
edad = 0;
casado = false;
numeroID = "Desconocido";
especialidad = "Desconocido";
} // Cierre del constructor
// Método para establecer el nombre del médico
public void setNombre (String valorNombre) {
nombre = valorNombre;
System.out.println("Se ha introducido el nombre del médico... El nombre del médico es: " + nombre);
} // Cierre del método
// Método para establecer los apellidos del médico
public void setApellidos (String valorApellidos) {
apellidos = valorApellidos;
System.out.println("Se han introducido los apellidos del médico... Los apellidos del médico son: " + apellidos);
} // Cierre del médotodo
// Método para establecer la edad del médico
public void setEdad (int valorEdad) {
edad = valorEdad;
System.out.println("Se ha introducido la edad del médico... La edad del médico es: " + edad);
} // Cierre del método
// Método para establecer el estado civil del médico
public void setCasado (boolean valorCasado) {
casado = valorCasado;
System.out.println("Se ha introducido el estado civil del médico... El médico está casado: " + casado);
} // Cierre del método
// Método para establecer el número de ID del médico
public void setNumeroID (String valorNumeroID) {
numeroID = valorNumeroID;
System.out.println("Se ha introducido el número de Identificación del médico... El ID es: " + numeroID);
} // Cierre del método
// Método para establecer la especialidad del médico
public void setEspecialidad (String valorEspecialidad) {
especialidad = valorEspecialidad;
System.out.println("Se ha introducido la especialidad del médico... La especialidad del médico es: " + especialidad);
} // Cierre del método
// Método para obtener el nombre del médico
public String getNombre (){
return nombre;
}
// Método para obtener los apellidos del médico
public String getApellidos (){
return apellidos;
}
// Método para obtener la edad del médico
public int getEdad (){
return edad;
}
// Método para obtener el estado civil del médico
public boolean getCasado (){
return casado;
}
// Método para obtener el número de ID del médico
public String getNumeroID (){
return numeroID;
}
// Método para obtener la especialidad del médico
public String getEspecialidad (){
return especialidad;
}
}
Quedo pendiente a sus respuestas y desde ya, muchísimas gracias por su atención!
-
Hola Arja
Tu clase Medico cumple con el cometido de presentar mensajes cuando se cambian los atributos de la clase.
Estos mensajes en los métodos 'set' no son lo habitual. Su propósito en este ejercicio es, atestiguar que cuando se invocan estos métodos, se cambia el valor de los atributos igual que se muestra el mensaje por pantalla.
Por otra parte, cuando se inicializa un atributo, se le puede dar el valor que uno quiera. Pero cuando se pide asignar los valores por defecto como es el caso, se refiere a que los atributos de tipo String toman la cadena vacía "". Ejem.
nombre = "";
en lugar de
nombre = "Desconocido";
Saludos y adelante
-
Toni, amigo, antes que nada quiero agradecerte tus comentarios, es muy amable de tu parte que te tomes el tiempo de revisar mi trabajo, seguro que tus sugerencias e indicaciones me servirán de mucho, como hasta ahora lo han hecho las que recibí de otros moderadores.
Ahora bien, he corregido la parte de los atributos de tipo "String" y te aseguro que, en la medida de lo posible, no volverá a suceder tal caso.
public class medico {
private String nombre; // Nombre del médico
private String apellidos; // Apellidos del médico
private int edad; // Edad del médico
private boolean casado; // Estado civil del médico
private String numeroID; // Número de documento de identidad del médico
private String especialidad; // Área en la que se especializa el médico
// Constructor
public medico (){
nombre = "";
apellidos = "";
edad = 0;
casado = false;
numeroID = "";
especialidad = "";
} // Cierre del constructor
// Método para establecer el nombre del médico
public void setNombre (String valorNombre) {
nombre = valorNombre;
System.out.println("Se ha introducido el nombre del médico... El nombre del médico es: " + nombre);
} // Cierre del método
// Método para establecer los apellidos del médico
public void setApellidos (String valorApellidos) {
apellidos = valorApellidos;
System.out.println("Se han introducido los apellidos del médico... Los apellidos del médico son: " + apellidos);
} // Cierre del médotodo
// Método para establecer la edad del médico
public void setEdad (int valorEdad) {
edad = valorEdad;
System.out.println("Se ha introducido la edad del médico... La edad del médico es: " + edad);
} // Cierre del método
// Método para establecer el estado civil del médico
public void setCasado (boolean valorCasado) {
casado = valorCasado;
System.out.println("Se ha introducido el estado civil del médico... El médico está casado: " + casado);
} // Cierre del método
// Método para establecer el número de ID del médico
public void setNumeroID (String valorNumeroID) {
numeroID = valorNumeroID;
System.out.println("Se ha introducido el número de Identificación del médico... El ID es: " + numeroID);
} // Cierre del método
// Método para establecer la especialidad del médico
public void setEspecialidad (String valorEspecialidad) {
especialidad = valorEspecialidad;
System.out.println("Se ha introducido la especialidad del médico... La especialidad del médico es: " + especialidad);
} // Cierre del método
// Método para obtener el nombre del médico
public String getNombre (){
return nombre;
}
// Método para obtener los apellidos del médico
public String getApellidos (){
return apellidos;
}
// Método para obtener la edad del médico
public int getEdad (){
return edad;
}
// Método para obtener el estado civil del médico
public boolean getCasado (){
return casado;
}
// Método para obtener el número de ID del médico
public String getNumeroID (){
return numeroID;
}
// Método para obtener la especialidad del médico
public String getEspecialidad (){
return especialidad;
}
}
Gracias nuevamente y saludos cordiales!
-
Hola a todos.
Estoy haciendo el curso de Java y agradezco a los autores su gran trabajo. Aquí dejo mi ejercicio para que me digan que les parece,así sabre como voy y corregiré mis errores.
Muchas gracias de ante mano.
PD:La página esta superbien,el conocimiento nunca sobra.
public class Medico {
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private String numerodni;
private String especialidad;
//construcctor
public Medico(){
nombre="";
apellidos="";
edad=0;
casado=false;
numerodni="";
especialidad="";
}//Cierre del constructor.
//metodos de procedimiento para dar atributos al médico
public void setNombre(String valorNombre){
nombre=valorNombre;
System.out.println("ha cambiado el nombre del médico,el nuevo nombre es"+valorNombre);
}
public void setApellidos(String valorApellidos){
apellidos=valorApellidos;
System.out.println("ha cambiado los apellidos del médico"+"valorNombre"+"el nuevo apellido es"+valorApellidos);
}
public void setEdad(int valorEdad){
edad=valorEdad;
System.out.println("ha cambiado la edad del médico"+"valorNombre"+"la nueva edad es"+valorEdad);
}
public void setCasado(boolean valorCasado){
casado=false;
System.out.println("ha cambiado el estado de casado del medico"+"valorNombre"+"el nuevo estado es"+valorCasado);
}
public void setNumerodni(String valorNumerodni){
numerodni="valorNumerodni";
System.out.println("ha cambiado el número de dni del médico"+"valorNombre"+"el nuevo número es"+ valorNumerodni);
}
public void setEspecialidad(String valorEspecialidad){
especialidad="valorEspecialidad";
System.out.println("ha cambiado la especialidad del médico"+"valorNombre"+"la nueva especialidad es"+valorEspecialidad);
}//Cierre del étodo.
//Métodos para obtener los atributos del médico
public String getNombre(){
return nombre;}
public String getApellidos(){
return apellidos;}
public int getEdad(){
return edad;}
public boolean getCasado(){
return casado;}
public String getNumerodni(){
return numerodni;}
public String getEspecialidad(){
return especialidad;}
//Cierre de os métodos para consultar los atributos del médico.
}
-
public void setNumerodni(String valorNumerodni){
numerodni="valorNumerodni";
System.out.println("ha cambiado el número de dni del médico"+"valorNombre"+"el nuevo número es"+ valorNumerodni);
}
numerodni="valorNumerodni";
acá si compilás te va a mostrar por pantalla "el nuevo número es valorNumerodni"
osea, numerodni va a valer lo que esté escrito entre comillas
pero debe ser que te confundiste nomas al poner con comillas, porque en los anteriores métodos hiciste bien
numerodni=valorNumerodni
así debería ser
luego
public void setCasado(boolean valorCasado){
casado=false;
System.out.println("ha cambiado el estado de casado del medico"+"valorNombre"+"el nuevo estado es"+valorCasado);
}
en casado=false lo estás declarando false, no le estás pasando el parámetro valorCasado
tendría que ser así
casado=valorCasado
en que valorCasado va ser false o true
Después, en System.out.println
ponés ("algo"+variable+"algo mas"+otra variable)
Si compilás tu código el texto en pantalla va a estar todo pegado.
Por ejemplo con
System.out.println("ha cambiado el número de dni del médico"+"valorNombre"+"el nuevo número es"+ valorNumerodni);
se va a ver así:
ha cambiado el número de dni del médicoJoseelnuevo número es12356
También recién veo que valorNombre lo pusiste con comillas
con lo que en realidad te va a imprimir así:
ha cambiado el número de dni del médicovalorNombreelnuevo número es12356
sacandole las comillas a "valorNombre" se resuelve. Pero lo que quería decir era que tendrías que preparar las cadenas, los strings que pongas dentro de System.out.print()
Por ejemplo así
System.out.println("dejo un espacio al final "+algo+" y otro al principio de esta cadena.")
Igual tratá de compilar tu código y probarlo, para ver cómo resulta y cómo te imprime las cosas por pantalla
-
public class Medico {
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private String numerodni;
private String especialidad;
//construcctor
public Medico(){
nombre="desconocido";
apellidos="desconocido";
edad=0;
casado=false;
numerodni="desconocido";
especialidad="desconocido";
}//Cierre del constructor.
//metodos de procedimiento
public void setNombre(String valorNombre){
nombre=valorNombre;
System.out.println("ha cambiado el nombre del médico,el nuevo nombre es "+valorNombre);
}
public void setApellidos(String valorApellidos){
apellidos=valorApellidos;
System.out.println("ha cambiado los apellidos del médico "+ nombre+" ,el nuevo apellido es "+valorApellidos);
}
public void setEdad(int valorEdad){
edad=valorEdad;
System.out.println("ha cambiado la edad del médico "+ nombre+" ,la nueva edad es "+valorEdad);
}
public void setCasado(boolean valorCasado){
casado=false;
System.out.println("ha cambiado el estado de casado del medico "+ nombre+" ,el nuevo estado es "+valorCasado);
}
public void setNumerodni(String valorNumerodni){
numerodni=valorNumerodni;
System.out.println("ha cambiado el número de dni del médico "+ nombre+" ,el nuevo número es "+ valorNumerodni);
}
public void setEspecialidad(String valorEspecialidad){
especialidad=valorEspecialidad;
System.out.println("ha cambiado la especialidad del médico "+ nombre+" ,la nueva especialidad es "+valorEspecialidad);
}
//Métodos para obtener los atributos del médico
public String getNombre(){
return nombre;
}
public String getApellidos(){
return apellidos;}
public int getEdad(){
return edad;}
public boolean getCasado(){
return casado;}
public String getNumerodni(){
return numerodni;}
public String getEspecialidad(){
return especialidad;}
//Cierre de os métodos para consultar los atributos del médico.
}
Hola a todos.
Estoy haciendo el curso y agradezco a los autores su gran trabajo. Aquí dejo mi ejercicio para que me digan que les parece,así sabre como voy y corregiré mis errores.
Muchas gracias de ante mano.
PD:La página esta superbien,el conocimiento nunca sobra.
-
Bien, le sacaste las comillas a las variables, y también se lee bien el texto que muestra System.out.print
Quedó lo del boolean. Por ejemplo tenés esto
public void setEdad(int valorEdad){
edad=valorEdad;
System.out.println("ha cambiado la edad del médico "+ nombre+" ,la nueva edad es "+valorEdad);
}
Diría que en " " ,la nueva edad es "+valorEdad "pongas directamente edad, así
public void setEdad(int valorEdad){
edad=valorEdad;
System.out.println("ha cambiado la edad del médico "+ nombre+" ,la nueva edad es "+edad);
}
Te va a mostrar el valor actual de edad, que justamente en este caso sería el mismo que ingresás
Por eso acá parece que está bien
public void setCasado(boolean valorCasado){
casado=false;
System.out.println("ha cambiado el estado de casado del medico "+ nombre+" ,el nuevo estado es "+valorCasado);
}
al poner que te imprima valorCasado, te va mostrar lo qu ponés al usar el método, pero si ponés que te muestre por pantallá qué vale casado, siempre te va a mostrar false
dentro del programa BlueJ al crear un objeto de tu clase, lo vas a poder inspeccionar para que te muestre el valor de cada variable global, las que declaraste al principio.
Se hace con botón derecho sobre el objeto creado, que te aparecerá abajo a la izquierda en la ventana de BlueJ, y elegís Inspeccionar
Si usás el método setCasado y ponés true, al inspeccionar te va a seguir mostrando true
para corregir eso tenés que poner
public void setCasado(boolean valorCasado){
casado=valorCasado;
System.out.println("ha cambiado el estado de casado del medico "+ nombre+" ,el nuevo estado es "+casado);
}
pasarle el parámetro que te pide el método a casado, de casado=false a casado=valorCasado tenés que cambiar
lo último, es que por convenio en los constructores las variables tipo int se inicializan en 0, los boolean en false y los String en ""
entonces en nombre="desconocido" tenés que cambiar a
nombre=""
para que quede mas claro, un ejemplo sería así
public class Ejemplo1{
private String palabra1;
private int numero1;
private boolean fOv;
public Ejemplo1(){
palabra1="";
numero1=0;
fOv=false;
}
}
-
Muchas gracias.
He hecho tus consejos y los seguire.Te agradezco tu tiempo.
Seguire con el curso y mandando ejercicios.
Saludos a todos los del foro.