Saltar la navegación

7.- Propiedades simples e indexadas.

Caso práctico

María ya había investigado algo del concepto de componente y ha hecho alguna prueba...

-El otro día -comenta María- estaba programando un componente JavaBeans para gestionar los discos que tengo, sin embargo, tuve un problema, porque al no saber a priori cuantos discos va a ser no puede crear un número fijo de propiedades...,

-Tu problema tiene fácil solución, como haría en cualquier otro programa si necesitas almacenar un número indeterminado de elementos lo más sencillo es usar un vector que vayas rellenando dinámicamente según te vaya haciendo falta.

Como siempre Ada está en todo.

Imagen de María, una de las protagonistas de nuestros casos.
Imagen de Ada, la jefa de la empresa BK.

Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usará para accederlos.

Esquema de propiedades de componentes en interfaces gráficas.

Una propiedad simple representa un único valor, un número, verdadero o falso o un texto por ejemplo.

Tiene asociados los métodos getter y setter para establecer y rescatar ese valor. Por ejemplo, si un componente de software tiene una propiedad llamada peso de tipo real susceptible de ser leída o escrita, deberá tener los siguientes métodos de acceso:

private void writeObject(java.io.ObjectOutputStream out) throws IOException;

private void readObject(java.io.ObjectInputStream in) throws IOExcept;

Una propiedad simple es de sólo lectura o sólo escritura si falta uno de los mencionados métodos de acceso.

Una propiedades indexadas representa un conjunto de elementos, que suelen representarse mediante un vector y se identifica mediante los siguientes patrones de operaciones para leer o escribir elementos individuales del vector o el vector entero (fíjate en los corchetes del vector):

public <TipoProp>[] get<NombreProp>()
public void set<NombreProp> (<TipoProp>[] p)
public <TipoProp> get<NombreProp>(int posicion)
public void set<NombreProp> (int posicion, <TipoProp> p)

Aquí tienes un ejemplo de propiedad indexada. El componente almacena un conjunto de miembros, a los que puedes acceder en conjunto o de uno en uno.

código de creación de una propiedad indexada llamada miembros junto con sus funciones get y set.

A continuación puedes descargar el código asociado para que lo estudies:

Autoevaluación

Pregunta

¿En qué caso crees que es más adecuado usar una propiedad indexada?

Respuestas

Estamos creando un componente para representar un panel de estados en el que tenemos tres posibles estados.

Para representar los teléfonos fijo y móvil y de trabajo de una persona.

Para representar los hijos de una persona.

Retroalimentación