Como m�nimo, una declaraci�n de variable miembro tiene dos componentes: el tipo de dato y el nombre de la variable.
tipo nombreVariable; // Declaraci�n m�nima de una variable miembro
Una declaraci�n m�nima de variable miembro es como la declaraci�n de variables que se escribe en cualquier otro lugar de un programa Java, como las variables locales o los par�metros de los m�todos. El siguiente c�digo declara una variable miembro entera llamada unEntero dentro de la clase ClaseEnteros.
class ClaseEnteros { int unEntero; . . . // define los m�todos aqu� . . . }
Observa que la declaraci�n de variables miembro aparece dentro de la implementaci�n del cuerpo de la clase pero no dentro de un m�todo. Este posicionamiento dentro del cuerpo de la clase determina que una variable es una variable miembro.
Al igual que otras variables en Java, las variables miembro deben tener un tipo. Un tipo de variable determina los valores que pueden ser asignados a las variables y las operaciones que se pueden realizar con ellas. Ya deber�as estar familiarizado con los tipos de datos en Java mediante la lectura de la lecci�n anterior: Variables y Tipos de Datos.
Un nombre de una variable miembro puede ser cualquier identificador legal de Java y por convenci�n empieza con una letra min�scula (los nombres de clase t�picamente empiezan con una letra may�scula). No se puede declarar m�s de una variable con el mismo nombre en la misma clase. Por ejemplo, el siguiente c�digo es legal.
class ClaseEnteros { int unEntero; int unEntero() { // un m�todo con el mismo nombre que una variable . . . } }
Junto con el nombre y el tipo, se pueden especificar varios atributos para las variables miembro cuando se las declara: incluyendo si los objetos pueden acceder a la variable, si la variable es una variable de clase o una variable de ejemplar, y si la variable es una constante.
Una declaraci�n de variable se podr�a parecer a esto.
[especificadordeAcceso] [static] [final] [transient] [volatile] tipo nombredeVaraible
Los puntos entre [ y ] son opcionales. Los items en negrita se deben reemplazar por palabras clave o por nombres.
Una declaraci�n de variable miembro define los siguientes aspectos de la variable.
- especificadordeAcceso define si otras clases tienen acceso a la variable. Se puede controlar el acceso a los m�todos utilizando los mismos especificadores, por eso Controlar el Acceso a Variables Miembro de una Clase cubre c�mo se puede controlar el acceso a las variables miembro o los m�todos.
- static indica que la variable es una variable miembro de la clase en oposici�n a una variable miembro del ejemplar. Se puede utilizar static para declarar m�todos de clase. Miembros de Clase y de Ejemplar explica la declaraci�n de variables de clase y de ejemplar y escribir m�todos de ejemplar o de clase.
- final indica que la variable es una constante
- transient la variable no es una parte persistente del estado del objeto
- volatile significa que la variable es modificada de forma as�ncrona.
La explicaci�n de las variables final, transient, y volatile viene ahora.
�Declarar Constantes
Para crear una variable miembro constante en Java se debe utilizar la palabra clave final en su declaraci�n de variable. La siguiente declaraci�n define una constante llamada AVOGADRO cuyo valor es el n�mero de Avogadro (6.023 x 10^23) y no puede ser cambiado.
class Avo { final double AVOGADRO = 6.023e23; }
Por convenci�n, los nombres de los valores constantes se escriben completamene en may�sculas. Si un programa intenta cambiar una variable, el compilador muestra un mensaje de error similar al siguiente, y rehusa a compilar su programa.
AvogadroTest.java:5: Can't assign a value to a final variable: AVOGADRO
�Declarar Variables Transitorias
Por defecto, las variables miembro son una parte persistente del estado de un objeto, Las variables que forman parte persistente del estado del objeto deben guardarse cuando el objeto se archiva. Se puede utilizar la palabra clave transient para indicar a la m�quina virtual Java que la variable indicada no es una parte persistente del objeto.
Al igual que otros modificadors de variables en el sistema Java, se puede utilizar transient en una clase o declaraci�n de variable de ejemplar como esta.
class TransientExample { transient int hobo; . . . }
Este ejemplo declara una variable entera llamada hobo que no es una parte persistente del estado de la claseTransientExample.
�Declarar Variables Volatiles
Si una clase contiene una variable miembro que es modificada de forma as�ncrona, mediante la ejecuci�n de threads concurrentes, se puede utilizar la palabra clave volatile de Java para notificar esto al sistema Java.
La siguiente declaraci�n de variable es un ejemplo de como declarar que una variable va a ser modificada de forma as�ncrona por threads concurrentes.
class VolatileExample { volatile int contador; . . . }