Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chompy129 en 06 de Diciembre 2016, 22:44
-
Operadores aritméticos en Java. +, -, *, / y %. Operador mod o resto de una división entre enteros. (CU00633B)
Recomiendo usar pirmero el método asignarRapido(.....), para indicar mas rápido las diferentes características. Aquí les dejo el ejercicio:
Código Java
/**
* Indica las caracteristicas de un medico.
* Se añaden metodos extra.
* @author Chompy129
* @version 1.1
*/
public class Medico_1{
String nombre; //Nombre del medico
String apellido; //Apellido del medico
int edad; //Su edad
boolean casado; //¿Esta casado?
String numeroDocumentoIdentidad; //Su numero de identidad
String especialidad; //Su especialidad
public Medico_1(){
nombre= "";
apellido= "";
edad= 0;
casado= false;
numeroDocumentoIdentidad= "CI-0";
especialidad= "";
}
//Metodos: setters and getters
public void setNombre(String valueName){
nombre= valueName;
System.out.println("Se ha cambiado el nombre del medico a: "+nombre);
}
public void setApellido(String valueApellido){
apellido= valueApellido;
System.out.println("Se ha cambiado el apellido del medico a: "+apellido);
}
public void setEdad(int valueEdad){
edad= valueEdad;
System.out.println("Se ha cambiado la edad del medico a: "+edad);
}
public void setCasado(boolean valueCasado){
casado= valueCasado;
System.out.println("El medico ahora esta casado: "+casado);
}
public void setNumeroDocumentoIdentidad(String valueNumeroDocumentoIdentidad){
numeroDocumentoIdentidad= "CI-"+valueNumeroDocumentoIdentidad;
System.out.println("Se ha cambiado el numero de identidad del medico a: "+numeroDocumentoIdentidad);
}
public void setEspecialidad(String valueEspecialidad){
especialidad= valueEspecialidad;
System.out.println("Se ha cambiado la especialidad del medico a: "+especialidad);
}
public String getNombre(){ return nombre;}
public String getApellido(){return apellido;}
public int getEdad(){return edad;}
public boolean getCasado(){return casado;}
public String getNumeroDocumentoIdentidad(){return numeroDocumentoIdentidad;}
public String getEspecialidad(){return especialidad;}
//Metodos Extra
public void calculoParaMultiploEdad(){
System.out.println("El medico "+nombre+" "+apellido+" con especialidad en "+especialidad+" tendra una edad multiplo de 5 dentro de "+(5-edad%5)+" año/s.");
}
public void asignarRapido(String valueNombre, String valueApellido, int valueEdad, boolean valueCasado, int valueNumeroDocumentoIdentidad, String valueEspecialidad){ // Define las caracteristicas escensiales
nombre= valueNombre;
apellido= valueApellido;
edad= valueEdad;
casado= valueCasado;
numeroDocumentoIdentidad= "CI-"+valueNumeroDocumentoIdentidad;
especialidad= valueEspecialidad;
System.out.println("Se ha añadido un medico, sus caracteristicas son:\nNombre: "+nombre+"\nApellido: "+apellido+"\nEdad: "+edad+"\nCasado: "+casado+"\nNumero del documento de identidad: "+numeroDocumentoIdentidad+"\nEspecialidad: "+especialidad+"\n");
}
}
Link de la clase: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=462:operadores-aritmeticos-en-java-y-operador-mod-o-resto-de-una-division-entre-enteros-cu00633b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 (https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=462:operadores-aritmeticos-en-java-y-operador-mod-o-resto-de-una-division-entre-enteros-cu00633b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188)
-
Hola Chompy129, el ejercicio está bien planteado hasta que llegamos al método AsignarRápido() donde veo que no tienes claro el concepto de "constructor" de una clase.
Lo que tu llamas AsignarRápido() quitándole la última línea, es un constructor de la clase Medico_1. Tu puedes tener varios constructores en una clase, aparte del constructor por defecto: Medico_1(){}, variarán unos de otros en función del número y tipo de sus parámetros y cuando crees un objeto, dependiendo del número y tipo de parámetros con que lo crees, java elegirá automáticamente el constructor mas adecuado de entre los que tengas definidos en la clase o te dará un error de compilación si no lo encuentra.
Todos los constructores tienen el mismo nombre ( el de la clase).
La última linea de ese método se corresponde con el método calculoParaMultiploEdad(), por lo que sería inncesaria. Rehaz el ejercicio según estas indicaciones y pruébalo. Si tienes dudas lo vuelves a publicar.
Saludos
-
Bueno aquí tienes el nuevo código:
/**
* Indica las caracteristicas de un medico.
* Se añaden metodos extra.
* @author Chompy129
* @version 1.2
*/
public class Medico_1{
String nombre; //Nombre del medico
String apellido; //Apellido del medico
int edad; //Su edad
boolean casado; //¿Esta casado?
String numeroDocumentoIdentidad; //Su numero de identidad
String especialidad; //Su especialidad
public Medico_1(){
nombre= "";
apellido= "";
edad= 0;
casado= false;
numeroDocumentoIdentidad= "CI-0";
especialidad= "";
}
public Medico_1(String valueNombre, String valueApellido, int valueEdad, boolean valueCasado, int valueNumeroDocumentoIdentidad, String valueEspecialidad){ // Define las caracteristicas escensiales
nombre= valueNombre;
apellido= valueApellido;
edad= valueEdad;
casado= valueCasado;
numeroDocumentoIdentidad= "CI-"+valueNumeroDocumentoIdentidad;
especialidad= valueEspecialidad;
}
//Metodos: setters and getters
public void setNombre(String valueName){
nombre= valueName;
System.out.println("Se ha cambiado el nombre del medico a: "+nombre);
}
public void setApellido(String valueApellido){
apellido= valueApellido;
System.out.println("Se ha cambiado el apellido del medico a: "+apellido);
}
public void setEdad(int valueEdad){
edad= valueEdad;
System.out.println("Se ha cambiado la edad del medico a: "+edad);
}
public void setCasado(boolean valueCasado){
casado= valueCasado;
System.out.println("El medico ahora esta casado: "+casado);
}
public void setNumeroDocumentoIdentidad(String valueNumeroDocumentoIdentidad){
numeroDocumentoIdentidad= "CI-"+valueNumeroDocumentoIdentidad;
System.out.println("Se ha cambiado el numero de identidad del medico a: "+numeroDocumentoIdentidad);
}
public void setEspecialidad(String valueEspecialidad){
especialidad= valueEspecialidad;
System.out.println("Se ha cambiado la especialidad del medico a: "+especialidad);
}
public String getNombre(){ return nombre;}
public String getApellido(){return apellido;}
public int getEdad(){return edad;}
public boolean getCasado(){return casado;}
public String getNumeroDocumentoIdentidad(){return numeroDocumentoIdentidad;}
public String getEspecialidad(){return especialidad;}
//Metodos Extra
public void calculoParaMultiploEdad(){
System.out.println("El medico "+nombre+" "+apellido+" con especialidad en "+especialidad+" tendra una edad multiplo de 5 dentro de "+(5-edad%5)+" año/s.");
}
}
Coloque el asignarRapido(...) a modo de constructor (creo que no he llegado a esa parte del curso), y dejo la operación que pidieron en el ejercicio.
-
Buenos días.
El ejercicio es correcto.
Si quieres puedes ver como lo ha hecho otro compañero y cometarios en este enlace:
https://www.aprenderaprogramar.com/foros/index.php?topic=5217.msg20771#msg20771 (https://www.aprenderaprogramar.com/foros/index.php?topic=5217.msg20771#msg20771)
Un saludo.
-
Hola Chompy129, como te ha dicho el compañero ESOJ , el ejercicio está correcto y la primera versión para el nivel del curso que llevas, también. Lo que te he explicado es una avanzadilla que verás en la lección 40.
Saludos,