Métodos get y set en Java

Hola a todos, hoy os enseñare que son y como utilizar los métodos get y set en Java.

Los métodos get y set, son simples métodos que usamos en las clases para mostrar (get) o modificar (set) el valor de un atributo. El nombre del método siempre sera get o set y a continuación el nombre del atributo, su modificador siempre es public ya que queremos mostrar o modificar desde fuera la clase. Por ejemplo, getNombre o setNombre.

Esta es la sintaxis de cada uno:

public tipo_dato_atributo getAtributo (){
     return atributo;
}

public void setAtributo (tipo_dato_atributo variable){
    this.atributo = variable;
}

Si usamos Eclipse tenemos una manera aún mas sencilla de generarlos automáticamente. Pinchamos en Source -> Generate Getters and Setters, nos aparecerá una ventana donde elegiremos que atributos generar su get o set, al pinchar en OK nos lo generara automáticamente estos métodos.

getters and setters

Veamos un ejemplo:

Clase

/**
 * Clase Empleado
 *
 * Contiene informacion de cada empleado
 *
 * @author Fernando
 * @version 1.0
 */
public class Empleado {

	//Atributos
	/**
	 * Nombre del empleado
	 */
	private String nombre;
	/**
	 * Apellido del empleado
	 */
	private String apellido;
	/**
	 * Edad del empleado
	 */
	private int edad;
	/**
	 * Salario del empleado
	 */
	private double salario;

	//Metodos publicos

	/**
	 * Devuelve el nombre del empleado
	 * @return nombre del empleado
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * Modifica el nombre de un empleado
	 * @param nombre
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * Devuelve la edad de un empleado
	 * @return edad del empleado
	 */
	public int getEdad() {
		return edad;
	}

	/**
	 * Modifica la edad de un empleado
	 * @param edad
	 */
	public void setEdad(int edad) {
		this.edad = edad;
	}

	/**
	 * Devuelve el salario de un empleado
	 * @return salario del empleado
	 */
	public double getSalario() {
		return salario;
	}

         /**
	 * Suma un plus al salario del empleado si el empleado tiene mas de 40 años
	 * @param sueldoPlus
	 * @return <ul>
	 * 			<li>true: se suma el plus al sueldo</li>
	 * 			<li>false: no se suma el plus al sueldo</li>
	 * 			</ul>
	 */
	public boolean plus (double sueldoPlus){
		boolean aumento=false;
		if (edad>40 && compruebaNombre()){
			salario+=sueldoPlus;
			aumento=true;
		}
		return aumento;
	}

	//Metodos privados

	private boolean compruebaNombre(){
		if(nombre.equals("")){
			return false;
		}
		return true;
	}

	//Constructor
         /**
	 * Constructor por defecto
	 */
         public Empleado(){
		this.nombre="";
		this.apellido="";
		this.edad=0;
		this.salario=0;
	}

        /**
	 * Constructor con 4 parametros
	 * @param nombre nombre del empleado
	 * @param apellido nombre del empleado
	 * @param edad edad del empleado
	 * @param salario salario del empleado
	 */
	public Empleado(String nombre, String apellido, int edad, double salario){
		this.nombre=nombre;
		this.apellido=apellido;
		this.edad=edad;
		this.salario=salario;
	}
}

Clase ejecutable

public class EmpleadoApp {

	public static void main(String[] args) {

		Empleado empleado1=new Empleado ("Fernando", "Ureña", 23, 800);

		Empleado empleado2=new Empleado ("", "Lopez", 50 ,1800);

		//Mostramos el valor actual del salario del empleado1
		System.out.println("El salario del empleado1 es "+empleado1.getSalario());

		//Modificamos la edad del empleado1
		empleado1.setEdad(43);

		empleado1.plus(100);

		//Mostramos el salario de nuevo, ahora tendra 100 mas
		System.out.println("El salario actual del empleado1 es "+empleado1.getSalario());

		//Modificamos el nombre del empleado2
		empleado2.setNombre("Antonio");

		empleado2.plus(100);

		//Mostramos el salario de nuevo, ahora tendra 100 mas
		System.out.println("El salario del empleado2 es "+empleado2.getSalario());

	}

}

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

10 comentarios

  1. alondra

    como utilizar get y set y que es

  2. dann

    que pasa si quitamos

    boolean aumento=false;

    y solo hacemos la comparación si es mayor a 40 en dado caso
    : /

  3. Diego

    Entonces significa que para modificar un atributo de carácter private se hará entonces mediante un setter no? Es decir, si lo quiero hacer directamente y no a través de un método como se ha hecho con el plus de salario.

  4. andres

    estoy confundido e visto muschos videos y mi cerebro hizo corto cirtcuito

  5. María

    Por qué se usa el this en los setter y no al retornar en los getter?

  6. Diana

    Muchas gracias me fue de mucha ayuda

  7. Diana

    Muchas gracias me fue de mucha ayuda

  8. Roberto

    Quiero ser franco, ya que ese elemento lo consideró detonador de confianza y ésta última un activo sumamente necesario en estos tiempos en que interactuamos y hasta realizamos operaciones muy diversas sin ver precisamente con quien lo estamos realizando, cuando decidí opinar se me vinieron a la cabeza palabras tales como, extraordinario, brillante, claro, límpido, bonito, gracias, felicidades; luego no encontré una idea precisa y entonces recurrí a la franqueza como constructor que reuniera todos esos atributos.

    Reitero mi agradecimiento y felicitaciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *