Autor Tema: Cómo inicializar los atributos en Java valores por defecto cadena vacía CU00633B  (Leído 9607 veces)

slatan

  • Sin experiencia
  • *
  • Mensajes: 3
  • Conocimiento fuente de libertad
    • Ver Perfil
Gracias por las observaciones que me puedan hacer llegar, ejercicio CU00633B del curso básico en programación orientada a objetos con Java.

Código: [Seleccionar]
/**
 * Clase médico
 *
 * @autor Sadid A. Latandret Solana
 * @fecha 13-02-2015
 */

public class Medico {
    private String nombre;
    private String apellido;
    private int edad;
    private boolean casado;
    private String numeroId;
    private String especialidad;
    private int p1;
    private int anos;
   
    // Constructores
    public Medico () {
        nombre = "Desconocido";
        apellido = "Desconocido";
        edad = 0;
        casado = false;
        numeroId = "Desconocido";
        especialidad = "Desconocida";
    }// Cierre del constructor
   
    // Metodos para establecer
    public void setNombre (String valNombre) {
        nombre = valNombre;
        System.out.println ("Modificó el nombre, el nuevo nombre es " + nombre);
    }
    public void setApellido (String valApell) {
        apellido = valApell;
        System.out.println ("Modificó el apellido, el nuevo apellido es " + apellido);
    }
    public void setEdad (int valEdad) {
        edad = valEdad;
        System.out.println ("Modificó la edad del médico, edad registrada: " + edad);
    }
    public void setCasado (boolean valCasado) {
        casado = valCasado;
        System.out.println ("Modificó el estado civil, estado civil: " + casado);
    }
    public void setIdentidad (String valId) {
        numeroId = valId;
        System.out.println ("Modificó el ID del médico, nuevo Id: " + numeroId);
    }
    public void especialidad (String valEsp) {
        especialidad = valEsp;
        System.out.println ("Modificada la especialidad del médico " + nombre + ". Nueva especialidad: " + especialidad);
    }
    public void calculoMulEdad () {
        p1 = edad%5;
        anos = 5-p1;
        System.out.println ("El médico de nombre " + nombre + " con especialidad " + especialidad + " tendrá una edad múltiplo de 5 dentro de " + anos + " años.");
    }
   
    // Metodos para obtener
    public String getNombre () { return nombre; }
   
    public String getApellido () { return apellido; }
   
    public int getEdad () { return edad; }
   
    public boolean getCasado () { return casado; }
   
    public String getId () { return numeroId; }
   
    public String getEsp () { return especialidad; }
}
« Última modificación: 11 de Septiembre 2016, 20:31 por Alex Rodríguez »
Gracias,

Slatan

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:CU00633B - Ejercicio No. 33 operadores.
« Respuesta #1 en: 13 de Febrero 2015, 19:53 »
Hola slatan

Tu clase es funcional. Bien.

Te apunto pequeños detalles para tener en cuenta en posteriores ejercicios.


En una clase podemos declarar los atributos que queramos, los que nos hagan falta.
Para este ejercico los atributos 'p1' y 'anos' los has declarado pero no los has inicializado en el constructor, ni has creado sus métodos set y get. Seguramente porque para ti no son atributos de la clase sino variables que usarás en el método calculoMulEdad().
Para casos como este, estas variables se declaran dentro del método que los usará y no recargar la lista de atributos.


Cuando se pide inicializar los atributos a sus valores por defecto, nos referimos a lo siguiente:
Los String se inicializan a cadena vacía ""
los int a cero 0
y los boolean a false

En un ejercicio anterior se os pidió inicializar un String con un texto como "Desconocido", eso tenía un propósito, que el atributo ya tuviera ese valor, pero repito, si se pide inicializar a sus valores por defecto, es lo apuntado.


También os hemos pedido en otro ejercicio que los métodos set además de modificar el atributo (su función principal) mostraran un mensaje indicando el cambio efectuado.
Este mensaje tenía el propósito de que se viera que al invocar el método en cuestión comprobáramos por consola que el atributo estaba recién modificado.
Pero estos mensajes no deben incluirse en los setters.


A la hora de bautizar los setters y getters, hay que seguir la convención de:
Empezar por la partículo set o get y continuar con el nombre del atributo con las iniciales de éste en mayúscula.

Están bien los métodos:
public void setNombre (String valNombre)
public void setApellido (String valApell)
public void setEdad (int valEdad)
public void setCasado (boolean valCasado)
public String getNombre ()
public String getApellido ()
public boolean getCasado ()

Hay que modificar:
public void setIdentidad (String valId)
public void especialidad (String valEsp)
public String getId ()
public String getEsp ()

----------------
Aparte de estas notas, el método calculoMulEdad() está bien construido.
Solo repito que las variables que exclusivamente usará este método deben declararse en su interior.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".