Métodos SET y GET

En un lenguaje de programación los componentes son paneles, botones, etiquetas, caja de listas, barras de desplazamiento, diálogos, menús, etc. Muchos componentes son visibles cuando se corre la aplicación, pero no tienen por qué serlo, solamente tienen que ser visibles en el momento de diseño, para que puedan ser manipulados por el Entorno de Desarrollo de Aplicaciones (IDE).

Podemos crear una aplicación en un IDE seleccionando los componentes visibles e invisibles en una paleta de herramientas y situarlas sobre un panel o una ventana. Con el ratón unimos los sucesos (events) que genera un objeto (fuente), con los objetos (listeners) interesados en responder a las acciones sobre dicho objeto. Por ejemplo, al mover el dedo en una barra de desplazamiento (fuente de sucesos) con el ratón, se cambia el texto (el número que indica la posición del dedo) en un control de edición (objeto interesado en los sucesos generados por la barra de desplazamiento).

*Definición de JavaBean

Un JavaBean o bean es un componente hecho en software que se puede reutilizar y que puede ser manipulado visualmente por una herramienta de programación en lenguaje Java.

*Propiedades

Las propiedades de un bean pueden examinarse y modificarse mediante métodos o funciones miembro, que acceden a dicha propiedad, y pueden ser de dos tipos:

ˇ getter method: lee el valor de la propiedad

ˇ setter method: cambia el valor de la propiedad.

El IDE llama a los métodos o funciones miembro que empiezan por get, para mostrar en los editores los valores de las propiedades. Si el programador cambia el valor de una propiedad se llama a un método cuyo nombre empieza por set, para actualizar el valor de dicha propiedad y que puede o no afectar al aspecto visual del bean en el momento del diseño.

public void setNombrePropiedad(TipoPropiedad valor)

public TipoPropiedad getNombrePropiedad( )

Cuando el IDE carga un bean, usa el mecanismo denominado reflection para examinar todos los métodos, fijándose en aquellos que empiezan por set y get. El IDE añade las propiedades que encuentra a la hoja de propiedades para que el programador personalice el bean.

*Propiedades simples

Una propiedad simple representa un único valor.

Ejemplo

//miembro de la clase que se usa para guardar el valor de la propiedad

private String nombre;

//métodos set y get de la propiedad denominada Nombrepublic

void setNombre(String nuevoNombre)

{

nombre=nuevoNombre;

}

public String getNombre()

{

return nombre;

}

*Propiedades indexadas

Una propiedad indexada representa un array de valores.

//miembro de la clase que se usa para guardar el valor de la propiedad

private int[] numeros={1,2,3,4};

//métodos set y get de la propiedad denominada Numeros, para el array completo

public void setNumeros(int[] nuevoValor)

{

numeros=nuevoValor;

}

public int[] getNumeros()

{

return numeros;

}

//métodos get y set para un elemento de array

public void setNumeros(int indice, int nuevoValor){

numeros[indice]=nuevoValor;

}

 

public int getNumeros(int indice){

return numeros[indice];

}

Propiedades ligadas (bound)

Los objetos de una clase que tiene una propiedad ligada notifican a otros objetos (listeners) interesados, cuando el valor de dicha propiedad cambia, permitiendo a estos objetos realizar alguna acción. Cuando la propiedad cambia, se crea un objeto (event) que contiene información acerca de la propiedad (su nombre, el valor previo y el nuevo valor), y lo pasa a los otros objetos (listeners) interesados en el cambio.

Propiedades restringidas (constrained)

Una propiedad restringida es similar a una propiedad ligada salvo que los objetos (listeners) a los que se les notifica el cambio del valor de la propiedad tienen la opción de vetar (veto) cualquier cambio en el valor de dicha propiedad.

Ejemplo;

Cuando a un empleado (objeto de la clase Asalariado) le aumentan el sueldo, ha de notificar este hecho a otros: la familia, la Hacienda pública, etc.


Vamos a estudiar con detalle los pasos necesarios para crear una clase Asalariado con una propiedad ligada (el sueldo) y otra clase Hacienda cuyos objetos (funcionarios) están interesados en el cambio en el valor de dicha propiedad.

Una clase con una propiedad ligada (bound) Creamos una clase denominada Asalariado con una propiedad ligada (bound) denominada sueldo de tipo int.

public class Asalariado{

private int sueldo;

public Asalariado() {

sueldo=20;
}

public void setSueldo(int nuevoSueldo){

sueldo=nuevoSueldo;
}
public int getSalario(){

return sueldo;

}

}

La clase Asalariado tiene un constructor por defecto, que asigna un valor inicial de 20 al miembro dato sueldo. Sueldo es una propiedad ya que tiene asociados dos métodos que empiezan por set y get.