Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Thieba en 26 de Agosto 2014, 02:46
-
hola buenos dias
alguien me puede mirar porque me da error de complicion este codigo y de paso corregirme el ejercicio
muchas gracias por su atencion
public class Medico
{//declaracion de los atributos
string nombre;
string apellidos;
int edad;
boolean casado;
string numeroDocumentoIdentidad;
string especialidad;
}//cierre de las declaraciones.p//constructor
public Medico()
{//inicializacion
nombre= " ";
apellidos " ";
edad= -99;
casado = false;
numeroDocumentoIdentidad= " ";
especialidad= " ";
}//cierre del constructor
//metodo para establecer el nombre del medico
public void setNombre (string valorNombre)
{nombre=valorNombre;}//cierre del metodo
//metodo para establecer los apellidos
public void setApellidos (string valorApellidos)
{apellidos=valorApellidos;}//cierre del metodo
//metodo para establecer la edad
public void setEdad (int valorEdad)
{edad=valorEdad;}//cierre del metodo
//metodo para si el objeto medico esta casado o no
public void setCasado (boolean valorCasado)
{casado=valorCasado;}//cierre del metodo
//metodos para establecer el DNI
public void setNumeroDocumentoIdentidad (string valornumeroDocumentoIdentidad)
{numeroDocumentoIdentidad= valorNumeroDocumentoIdentidad;}//cierre del metodo
//metodo para establecer la especialidad del objeto medico
public void setEspecialidad (string valorEspecialidad)
{especialidad = valorEspecialidad;}//cierre del metodo
//metodo para obtener el nombre
public string getNombre ()
{
return nombre;
System.out.println ("El medico de nombre" + valorNombre + "no hace visita hoy");
}//cierre del metodo
//metodo para obtener los apellidos del medico
public string getApellidos ()
{
return apellidos;
System.out.println ("el medico" + valorApellidos + "ha jubilado");
}//cierre del metodo
//metodo para obtener la edad del medico
public int getEdad ()
{
return edad;
System.out.println ("los medicos de" + valorEdad + "años estan en reanimacion");
}//cierre del metodo
//metodo para obtener si el medico esta casado o no
public boolean getCasado ()
{
return casado;
System.out.println ("Los medicos solteros tienen turno de noche y los casados turno de dia");
}//cierre del metodo
//metodo para el DNI del objeto medico
public string getNumeroDocumentoIdentidad ()
{
return numeroDocumentoIdentidad;
System.out.println ("Todos los medicos son nacionales");
}//cierre del metodo
//metodo para obtener la especialidad del objeto medico
public string getEspecialidad ()
{
return especialidad
System.out.println ("El medico especializado en" + valorEspecialidad + "ahora esta en maternidad");
}//cierre del metodo
}//cierre de la clase
-
Hola, el código tiene bastantes errores que tienes que corregir.
Tienes un símbolo } que te sobra después de declarar los atributos no tienes que poner ese símbolo
public class Medico
{//declaracion de los atributos
string nombre;
string apellidos;
int edad;
boolean casado;
string numeroDocumentoIdentidad;
string especialidad;
ESTO BORRARLO -- > }//cierre de las declaraciones.p//constructor
Aquí te falta un =:
apellidos " ";
Aquí te falta un ;:
return especialidad
Donde escribes string nombre; tienes que poner String en mayúsculas (no sólo aquí, en todos los sitios donde escribas String)
Aquí tienes mal escrito:
public void setNumeroDocumentoIdentidad (String valornumeroDocumentoIdentidad)
{numeroDocumentoIdentidad= valorNumeroDocumentoIdentidad;}//cierre del metodo
Aquí tienes mal puesto valorNombre cuando debe ser nombre:
System.out.println ("El medico de nombre" + valorNombre + "no hace visita hoy");
Aquí tienes que corregir:
public String getApellidos ()
{
return apellidos;
System.out.println ("el medico" + valorApellidos + "ha jubilado");
}//cierre del metodo
Después de un return ya no se ejecuta nada más, por tanto si quieres que algo se ejecute tienes que ponerlo antes del return.
Además sería apellidos en lugar de valorApellidos
Parece que has escrito todo el código sin ir probando y por eso tienes tantos errores. Cuando escribas código, crea primero sólo la clase vacía y compila para ver que no tienes errores, después añade los atributos y compila para ver que no tienes errores, luego añádele el constructor y compila para ver que no tengas errores, luego añade un método y compila para ver que no tienes errores... así paso a paso conseguirás tener un código sin errores.
En vez de corregir este código creo que sería mejor que empezaras desde cero haciéndolo paso a paso y compilando en cada paso, así tú mismo serás capaz de ver dónde están los errores.
Saludos
-
una respuesta muy pedagoga,
gracias Javi,
ahora parece que el codigo no tiene errores, se me compila y ademas creando un objeto medico se cumplen las espectativas del ejercicio.
te lo digo de corazon GRACIAS POR TU CONTRIBUCION
a continuacion adjunto el nuevo codigo y los resultados de impresion
public class Medico
{//declaracion de los atributos
String nombre;
String apellidos;
int edad;
boolean casado;
String numeroDocumentoIdentidad;
String especialidad;
//constructor
public Medico()
{//inicializacion
nombre = " ";
apellidos = " ";
edad = -99;
casado = false;
numeroDocumentoIdentidad = " ";
especialidad = " ";
}//cierre del constructor
//metodo para establecer el nombre del medico
public void setNombre (String valorNombre)
{nombre=valorNombre;}//cierre del metodo
//metodo para establecer los apellidos
public void setApellidos (String valorApellidos)
{apellidos=valorApellidos;}//cierre del metodo
//metodo para establecer la edad
public void setEdad (int valorEdad)
{edad=valorEdad;}//cierre del metodo
//metodo para si el objeto medico esta casado o no
public void setCasado (boolean valorCasado)
{casado=valorCasado;}//cierre del metodo
//metodos para establecer el DNI
public void setNumeroDocumentoIdentidad (String valorNumeroDocumentoIdentidad)
{numeroDocumentoIdentidad= valorNumeroDocumentoIdentidad;}//cierre del metodo
//metodo para establecer la especialidad del objeto medico
public void setEspecialidad (String valorEspecialidad)
{especialidad = valorEspecialidad;}//cierre del metodo
//metodo para obtener el nombre
public String getNombre ()
{
System.out.println (" El medico de nombre " + nombre + " no hace visita hoy ");
return nombre;
}//cierre del metodo
//metodo para obtener los apellidos del medico
public String getApellidos ()
{
System.out.println (" el medico " + apellidos + " ha jubilado ");
return apellidos;
}//cierre del metodo
//metodo para obtener la edad del medico
public int getEdad ()
{
System.out.println (" los medicos de " + edad + " años estan en reanimacion ");
return edad;
}//cierre del metodo
//metodo para obtener si el medico esta casado o no
public boolean getCasado ()
{
System.out.println (" Los medicos solteros tienen turno de noche y los casados turno de dia ");
return casado;
}//cierre del metodo
//metodo para el DNI del objeto medico
public String getNumeroDocumentoIdentidad ()
{
System.out.println (" Todos los medicos son nacionales ");
return numeroDocumentoIdentidad;
}//cierre del metodo
//metodo para obtener la especialidad del objeto medico
public String getEspecialidad ()
{
System.out.println (" El medico especializado en " + especialidad + " ahora esta en maternidad ");
return especialidad;
}//cierre del metodo
}//cierre de la clase
El medico de nombre Andreu no hace visita hoy
el medico Campanario Ponga ha jubilado
los medicos de 40 años estan en reanimacion
Los medicos solteros tienen turno de noche y los casados turno de dia
El medico especializado en Quirofano ahora esta en maternidad
Todos los medicos son nacionales
-
Sí, ahora compila y funciona bien ;D
Te faltaría adecuarlo a lo que pide el ejercicio. El ejercicio dice: Por ejemplo si cambia la especialidad del médico, debe aparecer un mensaje que diga: “Ha cambiado la especialidad del médico de nombre … . La nueva especialidad es: …”
¿Cuándo cambia la especialidad del médico? La especialidad cambia cada vez que se hace uso de set (método encargado de establecer o cambiar el valor de un atributo).
Por ejemplo:
public void setEspecialidad (String valorEspecialidad)
{especialidad = valorEspecialidad;
System.out.println ("Ha cambiado la especialidad del médico de nombre "+nombre +" La nueva especialidad es: "+especialidad);}//cierre del metodo
Los otros mensajes (si hace visita o no...) no los pide el ejercicio, así que sobrarían.
Saludos
-
es verdad , no lo interpreté así .
gracias otra vez.
-
ahora me parece que esta mejor codigo, gracias por tu disposicion. he entendido el enunciado y el como de los sintaxis del codigo como por ejemplo que "String se escribe siempre en mayuscula" y despues de return el codigo ya no ejecuta nada mas y "que hay que ir compilando pasa por pasopara poder averiguar los errores".
de verdad gracias.
a continuacion adjunto el codigo
public class Medico
{//declaracion de los atributos
String nombre;
String apellidos;
int edad;
boolean casado;
String numeroDocumentoIdentidad;
String especialidad;
//constructor
public Medico()
{//inicializacion
nombre = " ";
apellidos = " ";
edad = -99;
casado = false;
numeroDocumentoIdentidad = " ";
especialidad = " ";
}//cierre del constructor
//metodo para establecer el nombre del medico
public void setNombre (String valorNombre)
{nombre=valorNombre;}//cierre del metodo
//metodo para establecer los apellidos
public void setApellidos (String valorApellidos)
{apellidos=valorApellidos;}//cierre del metodo
//metodo para establecer la edad
public void setEdad (int valorEdad)
{edad=valorEdad;}//cierre del metodo
//metodo para si el objeto medico esta casado o no
public void setCasado (boolean valorCasado)
{casado=valorCasado;}//cierre del metodo
//metodos para establecer el DNI
public void setNumeroDocumentoIdentidad (String valorNumeroDocumentoIdentidad)
{numeroDocumentoIdentidad= valorNumeroDocumentoIdentidad;}//cierre del metodo
//metodo para establecer la especialidad del objeto medico
public void setEspecialidad (String valorEspecialidad)
{especialidad = valorEspecialidad;
System.out.println ("Ha cambiado la especialidad del médico de nombre "+nombre +". La nueva especialidad es: "+especialidad);}//cierre del metodo
//metodo para obtener el nombre
public String getNombre ()
{return nombre;}//cierre del metodo
//metodo para obtener los apellidos del medico
public String getApellidos ()
{return apellidos;}//cierre del metodo
//metodo para obtener la edad del medico
public int getEdad ()
{return edad;}//cierre del metodo
//metodo para obtener si el medico esta casado o no
public boolean getCasado ()
{return casado;}//cierre del metodo
//metodo para el DNI del objeto medico
public String getNumeroDocumentoIdentidad ()
{return numeroDocumentoIdentidad;}//cierre del metodo
//metodo para obtener la especialidad del objeto medico
public String getEspecialidad ()
{return especialidad;}//cierre del metodo
}//cierre de la clase
-
¿pero no has incluido los mensajes que pedía el ejercicio?
-
pensaba que el ejercicio solo pedía mensaje
public void setEspecialidad (String valorEspecialidad)
{especialidad = valorEspecialidad;
System.out.println ("Ha cambiado la especialidad del médico de nombre "+nombre +". La nueva especialidad es: "+especialidad);}//cierre del metodo
o que no lo he entendido bien como lo pensavba.
ahora sí que no sé que hacer..
necesito ayuda pues,
gracias Javi.
-
Hola de nuevo, el ejercicio dice "En cada método, incluye una instrucción para que se muestre por consola un mensaje informando del cambio."
Por tanto tienes que incluir un mensaje en cada método set.
Puedes consultar la solución aquí: https://www.aprenderaprogramar.com/foros/index.php?topic=989
Salud
-
Por favor cuando se trate de un nuevo ejercicio buscar un hilo donde se hable de dicho ejercicio, o crear un nuevo tema. Dado que la última respuesta es sobre CU00633B y aquí se hablaba de CU00632B, procedemos a cambiar el último mensaje de ubicación.
-
Y también recordar que no se dupliquen mensajes en distintos hilos del foro. Gracias!