Listado completo de tutoriales

97 - Generación automático de constructores, getters y setters con Eclipse


Cuando queremos tener acceso a un atributo de la clase lo más común es implementar un método que lo retorne y si queremos cambiar su valor implementamos otro método que lo modifique.

Como esta actividad es muy común para toda clase los Ides de Java (Eclipse, NetBeans, IntelliJ IDEA etc.) nos brindan estas funcionalidades en forma automática.

Veamos como crear los métodos de acceso a atributos y constructores en forma automática con Eclipse.

Problema:

Plantear un clase llamada 'Persona' definir los atributos nombre y edad. Crear el constructor y los métodos para modificar y recuperar los valores de los atributos mediante las herramientas que provee Eclipse.

Clase: Persona

public class Persona {
    private String nombre;
    private int edad;    
}

Una vez que declaramos la clase con los atributos nombre y edad procedemos a elegir del menú de opciones de Eclipse: Source -> Generate constructor using Fields...:

java generate constructor using Fields eclipse

Luego de elegir la opción se abre un diálogo para que seleccionemos que atributos queremos inicializar en el constructor:

java generate constructor using Fields eclipse diálogo

El código del constructor se agrega donde se encuentra el cursor actualmente.

Clase: Persona

public class Persona {
    private String nombre;
    private int edad;
    public Persona(String nombre, int edad) {
        super();
        this.nombre = nombre;
        this.edad = edad;
    }
    
}

La llamada al constructor de la clase padre mediante super() es opcional ya que de todos modos se hace en forma automática si no la disponemos.

Ahora procederemos a crear los getters y setters para la clase Persona, elegimos la opción: Source -> Generate Getters and Setters... (Recordar que los métodos se insertan donde se encuentre el cursor actualmente):

java generate generate getter and setters menu eclipse

En el diálogo siguiente especificamos para que campos queremos generar el getter y el setter:

java generate generate getter and setters diálogo eclipse

Ahora ya tenemos codificado el constructor de la clase 'Persona' y los setters y getters:

public class Persona {
    private String nombre;
    private int edad;
    public Persona(String nombre, int edad) {
        super();
        this.nombre = nombre;
        this.edad = edad;
    }
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public int getEdad() {
        return edad;
    }
    public void setEdad(int edad) {
        this.edad = edad;
    }   
    
}

Las herramientas que nos proveen Eclipse nos ahorra mucho tiempo con tareas repetitivas.

Ahora podemos ver porque es tan común llamar 'int getEdad()' a un método que retorne el campo edad en lugar de 'int retornarEdad()'.

Los diálogos que vimos para generar constructores, getters y setters tienen muchas opciones como pueden ser fijar si el método es public, private, protected, que se generen solo los getters o setters, seleccionar no todos los campos etc.

Problema propuesto

  1. Confeccionar una clase que represente un empleado. Definir los campos nombre y sueldo.
    Crear dos constructores, uno que llegue el nombre y el sueldo y otro que solo llegue el nombre y se inicialice el sueldo en 1000. Crear getters y setters de los campos nombre y sueldo.

Solución
public class Empleado {
    private String nombre;
    private float sueldo;

    public Empleado(String nombre, float sueldo) {
        super();
        this.nombre = nombre;
        this.sueldo = sueldo;
    }

    public Empleado(String nombre) {
        super();
        this.nombre = nombre;
        this.sueldo = 1000;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public float getSueldo() {
        return sueldo;
    }

    public void setSueldo(float sueldo) {
        this.sueldo = sueldo;
    }

}

Retornar