Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 10 de Septiembre 2018, 13:56
-
Hola dejo el ejercicio del tema Java desde cero CU00632B del taller de programación Java desde cero de aprenderaprogramar.
//Declaracion de la clase
public class Medico{
String nombre; //Nombre del medico
String apellido; //Apellido del medico
int edad; //Su edad
boolean casado; //¿Esta casado?
String numeroDNI; //Su numero de identidad
String especialidad; //Su especialidad
//Constructor y atributos de la clase
public Medico(){
nombre= "Paquito";
apellido= "El Chocolatero";
edad= 0;
casado= false;
numeroDNI= "12305640-M";
especialidad= "Novel";
}
//Metodos setter
public void setNombre(String valueName){
System.out.println("Se ha cambiado el nombre del medico especialista " + especialidad + " a : " +valueName);
nombre= valueName;
}
public void setApellido(String valueApellido){
System.out.println("Se ha cambiado el apellido del medico especialista " + especialidad + " " +nombre +" a: "+valueApellido);
apellido= valueApellido;
}
public void setEdad(int valueEdad){
System.out.println("Se ha cambiado la edad del medico especialista "+ especialidad+ " "+ nombre +" "+ apellido +" a: "+valueEdad);
edad= valueEdad;
}
public void setCasado(boolean valueCasado){
System.out.println("El medico especialista " + especialidad +" "+ nombre +" "+ apellido +" ahora esta casado? : "+valueCasado);
casado= valueCasado;
}
public void setnumeroDNI(String valuenumeroDNI){
System.out.println("Se ha cambiado el numero de identidad del medico "+ nombre + " " +apellido + " de "+numeroDNI +" a: "+valuenumeroDNI);
numeroDNI= valuenumeroDNI;
}
public void setEspecialidad(String valueEspecialidad){
System.out.println("Se ha cambiado la especialidad del medico "+nombre +" " + apellido +" de " + especialidad +" a: "+valueEspecialidad);
especialidad= valueEspecialidad;
}
//Metodos Getter
public String getNombre(){ return nombre;}
public String getApellido(){return apellido;}
public int getEdad(){return edad;}
public boolean getCasado(){return casado;}
public String getnumeroDNI(){return numeroDNI;}
public String getEspecialidad(){return especialidad;}
}
Gracias.
-
Buenas, el ejercicio está bien resuelto aunque el constructor no es adecuado porque los valores de defecto que has tomado no son lógicos tal y como he comentado en https://aprenderaprogramar.com/foros/index.php?topic=7101.0
Tal vez inicializando con 0, false y cadena vacía los mensajes por consola deberían plantearse de otra manera, pero esto tampoco tiene demasiada importancia (el ejercicio planteaba el ser capaz de utilizar los parámetros recibidos por un método y los atributos, y eso está logrado).
Y una vez más, repito lo ya indicado: pon nombre a los temas de los foros como se indica en https://aprenderaprogramar.com/foros/index.php?topic=1460.0, por favor.
Salu2
-
Hola Ogramar.
No se si es que yo no entiendo bien lo que quiere decir por defecto.
En la corrección del ejercicio me dices:
Buenas, el ejercicio está bien resuelto aunque el constructor no es adecuado porque los valores de defecto que has tomado no son lógicos tal y como he comentado en https://aprenderaprogramar.com/foros/index.php?topic=7101.0
Para mi por defecto puede ser que en el constructor los atributos se pueden iniciar con cualquier valor ya sea nulo, cadena vacía, cero o le ponga el valor que yo quiera.
Otra cosa sería iniciar los atributos en el constructor con sus valores nulos o sea a cero , false, cadena vacia o null.
Estos valores tambien son por defecto, pero en el ejercico pide:
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Medico (que representa a un médico de un hospital). Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. En cada método, incluye una instrucción para que se muestre por consola un mensaje informando del cambio. 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: …”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
En lo que esta resaltado en negrita yo interpreto que tengo que poner por defecto algún valor dentro de los atributos, para que cuando yo modifique alguno de ellos aparezca en el mensaje el cambio que yo he echo.
Si inicio los atributos a nulos ("",False,0 etc) al presentar el cambio por pantalla no me aparecería el cambio del valor inicial con el que se hace o si ya que el valor inicial seria nulo("",false,0 etc..).
Gracias. ;)
Un saludo.
-
Buenas, "por defecto" se refiere a que cualquier objeto que se cree tendrá siempre esos atributos, y para modificarlos habrá que hacerlo usando un procedimiento específico establecido para ello. En este ejercicio, si en el constructor de la clase defines nombre= "Paquito"; eso signfica que todas las instancias de la clase que se creen tendrán como atributo nombre "Paquito" y eso parece poco lógico. Es más lógico dejarlo como cadena vacía (que se puede interpretar como no establecido), o bien si quieres asignarle un valor podría ser "Desconocido", "No establecido", ó similar. Nada te impide usar "Paquito", el código compila, pero en general puede considerarse una mala práctica. Una solución correcta para este ejercicio podría ser la que se muestra en https://aprenderaprogramar.com/foros/index.php?topic=1300.0 Salu2