Cuando se instruye a una computadora que asigne memoria, se le indica qué nombres usar para cada localización y qué tipo de datos almacenar en esas localizaciones. Es esen- cial saber la localización de los datos ya que los almacenados en una ubicación de memoria se podrían necesitar en varios lugares en el programa. Como se aprendió antes, saber qué tipos de datos se tienen es crucial para realizar cálculos precisos. También es crítico saber si los datos deben permanecer constantes a lo largo de la ejecución del programa o si podrían cambiar. Algunos datos no se deben cambiar. Por ejemplo, el salario podría ser el mismo para todos los empleados de tiempo parcial. El valor en una fórmula de conversión que convierte pulgadas a centímetros es fijo, ya que 1 pulgada siempre es igual a 2.54 centímetros. Cuando están alma- cenados en una memoria, este tipo de datos se debe proteger de cambios accidentales durante la ejecución de un programa. En Java se puede utilizar una constante nombrada para instruir a un programa que marque las localizaciones de memoria donde los datos son constantes a lo largo de su ejecución.
Constante nombrada: localización de memoria cuyo contenido no se permite que cambie
2
2
Para asignar memoria se utilizan instrucciones de declaración en Java. La sintaxis para declarar una constante nombrada es:
static final dataType IDENTIFICADOR = valor;
En Java static y final son palabras reservadas. La palabra reservada final especifica que el valor almacenado en el identificador es fijo y no se debe cambiar.
NOTA En sintaxis el sombreado indica la parte de la definición que es opcional.
Dado que la palabra reservada static está sombreada, puede o no aparecer cuando se declara una constante nombrada. En la sección "Creación de un programa de aplicación en Java” más adelante en este capítulo, se explica cuándo se podría requerir esta palabra reservada. Además, observe que el identificador para una constante nombrada está en letras mayúsculas. Esto se debe a que los programadores en Java por lo general utilizan letras mayúsculas para una cons- tante nombrada. (Si el nombre de una constante nombrada es una combinación de más de una palabra, denominadas palabras corridas juntas, entonces las palabras se separan utilizando un guión bajo; consulte el siguiente ejemplo.)
EJEMPLO 2-11 EXAMPLE 2-1
Considere las siguientes instrucciones en Java:
final double CENTIMETROS_POR_PULGADA = 2.54; final int NUM_DE_ESTUDIANTES = 20;
final char EN BLANCO = ' ';
final double PAGO_SALARIO = 15.75;
La primera instrucción le indica al compilador que asigne suficiente memoria para almacenar un valor de tipo double, que llame a este espacio de memoria CENTIMETROS_POR_PULGADA
y que almacene el valor 2.54 en ella. A lo largo de un programa que utilice esta instrucción, cuando se necesita la fórmula de conversión, el espacio de memoria CENTIMETROS_POR_PUL- GADA se puede acceder. Las otras instrucciones tienen significados similares.
NOTA Como se hizo notar antes, el tipo designado de números de punto flotante es double. Por tanto, si se declara una constante nombrada de tipo float, entonces se debe especificar que ese valor es de tipo float como se muestra:
final float PAGO_SALARIO = 15.75f;
de lo contrario, el compilador generará un mensaje de error. Observe que en 15.75f, la letra f al final especifica que 15.75 es un valor float. Recuerde que el tamaño de la memoria para valores float es 4 bytes; para valores double, 8 bytes. Nosotros utilizaremos principal- mente el tipo double para trabajar con valores de punto flotante.
static
Utilizando una constante nombrada para almacenar datos fijos, en vez de utilizar el propio valor de los datos, tiene una ventaja importante. Si los datos fijos cambian no se necesita edi- tar todo el programa y cambiar el valor anterior con el nuevo. En vez de eso, se puede hacer el cambio en un solo lugar, recompilar el programa y ejecutarlo empleando el nuevo valor de principio a fin. Además, al almacenar un valor y referirse a esa localización de memoria cuando se necesite, evita teclear el mismo valor una y otra vez; también evita cometer errores tipográfi- cos. Si se escribe mal el nombre de la localización, la computadora podría advertirlo mediante un mensaje de error, pero no advertirá si el valor se teclea mal.
Ciertos datos deben ser modificables durante la ejecución de un programa. Por ejemplo, des- pués de cada examen, la calificación promedio de un estudiante puede cambiar; el número de exámenes también cambia. De manera similar, después de cada aumento de salario, cambia el salario de un empleado. Este tipo de datos se deben almacenar en celdas de memoria cuyo contenido se puede modificar durante la ejecución de un programa. En Java las celdas de me- moria cuyo contenido se puede modificar durante la ejecución de un programa se denominan
variables.
Variable: localización de memoria cuyo contenido puede cambiar durante la ejecución de un
programa.
La sintaxis para declarar una variable o variables múltiples es:
tipoDatos identificador1, identificador2, ..., identificadorN;
EJEMPLO 2-12 EXAMPLE 2-1
Considere las siguientes instrucciones: double amountDue;
int counter; char ch;
int num1, num2;
La primera instrucción le indica al compilador que asigne suficiente memoria para almacenar un valor de tipo double y que lo llame amountDue. Las instrucciones 2 y 3 tienen convenciones similares. La cuarta instrucción le indica al compilador que asigne dos espacios de memoria dife- rentes (cada uno lo suficientemente grande para almacenar un valor de tipo int), que nombre al primer espacio de memoria num1 y que nombre al segundo espacio de memoria num2.
NOTA Los programadores de Java por lo general utilizan letras minúsculas para declarar variables. Si un nombre de una variable es una combinación de más de una palabra, entonces la primera letra de cada palabra, excepto la primera, es en mayúsculas. (Por ejemplo, consulte la varia- ble amountDue en el ejemplo siguiente.)
De ahora en adelante cuando se diga "variable,” se quiere decir localización de memoria de una variable.
2
Entrada | 51
2
NOTA En Java (dentro de un método) se deben declarar todos los identificadores antes de que se puedan utilizar. Si se hace referencia a un identificador sin declararlo, el compilador generará un mensaje de error indicando que el identificador no está declarado.