Metodos Setters y Getters en Java.

Mi primer artículo colaborando en el blog, y se preguntarán “¿por qué este tema?”, sencillamente porque quería compartirles algo que depende del conocimiento de éstos tipos de métodos, que no son propios de java, pues son sobre todo una “buena costumbre” en la programación orientada a objetos en varios lenguajes, y además son parte de la especificación de JavaBeans.

La razón de crear estos métodos, es debido a que habitualmente se recomienda que los campos (o propiedades) de una clase sean de acceso privado, es decir, únicamente desde el interior de la clase, y que para accesar o modificar estos valores, se utilicen métodos públicos diseñados para esa tarea. Estos son los denominados setters (set – modificar) y getters (get – accesar).


Pongamos un ejemplo sencillo, suponiendo que debemos representar a una persona en un objeto, la persona tendrá como datos “nombre, direccion, y teléfono”. Crearemos entonces la clase y esos 3 campos, los cuales serán de acceso privado, y crearemos los 3 métodos setters y los 3 métodos getters para poder accesarlos y/o modificarlos.

El código java para la clase ser vería como el siguiente:

/**
 * Clase que representa a un persona
 * @author mariodlg
 */
public class Persona{

  private String nombre;
  private String direccion;
  private int telefono;

 /**
  * Constructor vacio
  */
  public Persona(){
  }

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

  public String getNombre(){
    return nombre;
  }

  public void setDireccion(String direccion){
    this.direccion = direccion;
  }

  public String getDireccion(){
    return direccion;
  }

  public void setTelefono(int telefono){
    this.telefono = telefono;
  }

  public int getTelefono(){
    return telefono;
  }

}

Se puede apreciar que los campos nombre, direccion y telefono son de acceso privado. Los métodos setNombre, setDireccion y setTelefono, son los setters para dichos campos, los cuales reciben como parámetro el nuevo valor y lo asignan a la propiedad. Los métodos getNombre, getDireccion y getTelefono, son los métodos getters, y nos dan acceso al valor actual de la propiedad, al retornarnos su dato almacenado. Estos métodos son de acceso público y nos dan la posibilidad de accesar y modificar los campos privados de la clase.

Una observación que vale la pena hacerse notar es que, si bien el campo nombre es en minúsculas, el método setNombre lleva la N en mayúscula, como una regla que aplica en la creación de este tipo de métodos, misma que es aplicada en otros lenguajes, no solo en java.

Por último, indicar que los métodos setters están recibiendo un parámetro con el mismo nombre del campo de la clase, pero que por estar definido dentro del método, su alcance (scope) se limita dentro del mismo. Para hacer que nuestra propiedad tome el valor que deseamos, es necesario indicarle a java que accese al campo y no al parámetro, mediante el operador “this“, de tal forma que “nombre” no es la misma variable que “this.nombre“, el primero es el parámetro, y el segundo es el campo de la clase. De esta forma se traslada el valor recibido por el método público hacia el campo privado.

Con esto aclarado, puedo pasar al siguiente tema, pronto. :)
Un cordial saludo!

No TweetBacks yet. (Be the first to Tweet this post)

Entradas relacionadas

, , , ,

  1. Aún no hay comentarios.
(no será publicado)

  1. No hay trackbacks.