Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chompy129 en 06 de Diciembre 2016, 22:44

Título: Java Operadores aritmeticos tener claro concepto constructor Ejercicio CU00633B
Publicado 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
Código: [Seleccionar]
/**
 * 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)

Título: Re:Java. Operadores aritmeticos. Ejercicio CU00633B
Publicado por: camoay en 07 de Diciembre 2016, 01:13
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
Título: Re:Java. Operadores aritmeticos. Ejercicio CU00633B
Publicado por: Chompy129 en 07 de Diciembre 2016, 04:45
Bueno aquí tienes el nuevo código:

Código: [Seleccionar]
/**
 * 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.
Título: Re:Java. Operadores aritmeticos. Ejercicio CU00633B
Publicado por: ESOJ en 07 de Diciembre 2016, 06:50
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.
Título: Re:Java. Operadores aritmeticos. Ejercicio CU00633B
Publicado por: camoay en 07 de Diciembre 2016, 11:38
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,