Variables
Variables
Variables
Los compiladores deben reemplazar los nombres simbólicos de las variables con la
real ubicación de los datos. Mientras que el nombre, tipo y ubicación de una variable
permanecen fijos, los datos almacenados en la ubicación pueden ser cambiados
durante la ejecución del programa.
Las variables pueden ser de longitud:
Tipos de datos
Una vez que se dispone de uno o varios datos de tipo booleano, estos se pueden
combinar en expresiones lógicas mediante los operadores lógicos (and, or, not). Un
ejemplo de este tipo de expresiones serían:
Cadena de caracteres:
En programación, una cadena de caracteres o frase (string en inglés) es una
secuencia ordenada de longitud arbitraria (aunque finita) de elementos que
pertenecen a un cierto alfabeto. En general, una cadena de caracteres es una
sucesión de caracteres (letras, números u otros signos o símbolos).
Desde el punto de vista de la programación, si no se ponen restricciones al
alfabeto, una cadena podrá estar formada por cualquier combinación finita de
todo el juego de caracteres disponibles (las letras de la 'a' a la 'z' y de la 'A' a la
'Z', los números del '0' al '9', el espacio en blanco ' ', símbolos diversos '!', '@',
'%', entre otros). Un caso especial de cadena es la que contiene cero
caracteres, a esta cadena se le llama cadena vacía.
Las variables pueden ser intercambiadas entre rutinas, por valor y por referencia:
Ámbito
Si bien es cierto, que de una forma básica, se puede definir el ámbito de las variables
de la forma expuesta más arriba, existen grados de globalidad de las mismas,
pudiendo ser accesibles desde unos puntos u otros, o incluso pudiendo ser
accesibles entre aplicaciones distintas, llegando al caso de la superglobalidad.
Ejemplo del ámbito de una variable en el lenguaje de programación Java.
TIPOS DE VARIABLES
Las variables son secciones reservadas en memoria para almacenar datos los
cuales pueden cambiar durante la ejecución del programa. En Java cuando creamos
una variable tenemos que seguir la siguiente sintaxis:
donde:
He puesto entre corchetes ([]) un elemento opcional a la hora de crear una variable.
Las variables al crearlas podemos darle un valor inicial. Para ello hay que usar
primero el operador de asignación =seguido del valor inicial. Si vamos al código de
ejemplo vemos que
char a = 'a';
char b = 'b';
double x = 3.2d;
float y = 4.8f;
hemos creado de esta forma 6 variables con valores iniciales. A esto se le conoce
como inicialización de variables . A continuación veremos los tipos básicos de
variables en Java.
Las variables de tipo entero grandes o long son aquellas que almacenan un número
(ya sea positivo o negativo) no decimal . Las variables de tipo long almacenan
números que están dentro del rango -2^63 y 2^63 - 1 . Si intentamos almacenar un
número que esté fuera de ese rango nos dará un error de compilación o de
ejecución. Para representar que un número es de tipo long, añadimos una L al final
del número:
Nota: No es recomendable crear una variable de tipo long para almacenar números
pequeños debido a que estamos reservando más memoria de la que realmente
necesitamos y eso a la larga puede producir que nuestro programa sea mucho más
lento de lo que es realmente. Su valor por defecto si no lo inicializamos es 0L.
float: Las variables de tipo float o flotante son aquellos números en precisión
simple de 32 bytes en el estandar IEEE 754. Para indicar que un número es
de tipo flotante ponemos un punto para separar la parte entera del número
de la parte decimal.
double x = 3.2d;
float y = 4.8f;
Añadir que en caso de querer representar números grandes es mejor usar double
en lugar de float ya que a la hora de operar con ellos puede producirse errores de
aproximación y llevarnos a confusiones innecesarias. Su valor por defecto si no lo
inicializamos es 0.0d para double y 0.0f para float. Existen dos tipos básicos más
para representar números: short y byte . Estos tipos sólo almacenan números de
tipo entero similar a como sucede con las variables de tipo int. No obstante, los
rangos de valores que pueden almacenar son mucho más pequeños (byte: -128,
127 short: -32768, 32767) y sólo se suelen usar cuando la reserva de memoria tiene
que estar muy controlada para el perfecto funcionamiento de un programa. En
general basta con trabajar con variables de tipo int en lugar de estos dos tipos.
Si esVerdadero
Hacer A
Sino
Hacer B
Evaluar ese "esVerdadero" no es más que evaluar una sentencia la cual devolverá
verdadero ( true ) o falso ( false ) en función de la condición. Ese valor true-false se
corresponde con variables booleanas o boolean. Las variables booleanas son
aquellas que sólo pueden guardar dos valores: true y false. Se declaran igual que
otra variable:
Ya hemos hablado de los números, pero ¿qué sucede con las letras o símbolos?
Podríamos usar variables de tipo int para almacenarlas, pero al hacer eso en lugar
de guardar el símbolo como tal, se almacenaría su correspondiente valor en formato
decimal en ASCII y tendríamos que manualmente interpretar dicho número para
pasarlo a su correspondiente símbolo si quisieramos por ejemplo imprimirlo por
consola. Para evitar esto, tenemos las variables de tipo char :
char a = 'a';
char b = 'b';
En este caso hemos creado dos variables de tipo char; una para el símbolo "a" y
otra para el símbolo "b". Notar que para referirnos a un símbolo como tal, tenemos
que rodearlo con comillas simples '' . Su valor por defecto si no lo inicializamos es
'\u0000'.
perro y gato son variables de tipo String las cuales almacenan las cadenas "perro"
y "gato" respectivamente. El trabajar así con los símbolos facilita mucho el manejo
de cadenas. Su valor por defecto si no lo inicializamos es null . El valor null es el
usado en Java para indicar que un Objeto no está inicializado y por tanto no se
puede usar.
Constantes ( final )
Supongamos que tenemos un tipo de dato el cual nunca y por ningún motivo
cambiará su valor. Por ejemplo el número PI (3.14159265358979323846…). Para
indicar que una variable tomará siempre el mismo valor y no se podrá modificar es
decir, es constante usamos la palabra reservada finalescribiéndola antes del tipo
de la variable:
final double NUMERO_PI = Math.PI; // 3.14
Arrays o Vectores
Los arrays o vectores son listas donde cada elemento es una variable de un tipo
específico con su valor correspondiente. Los arrays no pueden almacenar tipos de
variables distintos (realmente eso no es cierto, pero con lo explicado hasta la fecha
hay que asumir que sí de modo que lo correcto sería decir "no deberían almacenar
tipos de variables distintos"). Existen tres maneras a lo sumo de definir un array:
objetos[1] = "caja";
objetos[2] = "zapato";
Tal y como comenté al explicar la tercera forma de declarar un array, los vectores
tienen un tamaño máximo el cual nosotros definimos. Por tanto, no podemos
aumentar dicho tamaño; si deseamos un tamaño mayor tenemos que crear un
nuevo array y posteriormente asignarle los valores almacenados en el anterior. Para
acceder a los elementos almacenados en el vector la sintaxis es la siguiente:
nombreVector[índice];
donde índice será un número entero que esté dentro del rango 0 y tamañoVector -
1 . Hay que tener esto en cuenta ya que cuando queramos acceder a un elemento
n-ésimo tendremos que usar el índice (n-1)-ésimo. Así por ejemplo:
Algo más a tener en cuenta de los vectores en Java es que, a diferencia de otros
lenguajes, los vectores no son cíclicos ; si intentamos acceder al siguiente
elemento después del último se produce una excepción al usar un índice el cual
está fuera de rango. Nota: Java implementa una clase llamada ArrayList la cual
extiende los vectores para mejorar su manejo (igual que sucedía con String y las
variables de tipo char). No obstante, yo me limitaré a los vectores ya que los
ArrayLists no son un elemento de la programación básica. Si alguien quiere usarlos
y quiere preguntarme algo de ellos no duraré en responder igualmente.
Similar a lo que sucede con los ArrayLists, los Wrappers son una clase propia de
Java la cual extiende el uso de una variable básica del lenguaje. Simplemente
añaden funcionalidades a los tipos básicos en Java. Los Wrappers existentes y el
tipo correspondiente son:
Una utilidad muy común en ellos es la de dada una cadena String de un número
(por ejemplo "10") transformarla en un número de tipo int y luego operar con ella:
System.out.println(Integer.parseInt("10") + 2);
El resultado de esa sentencia nos imprime por pantalla 12. Si por el contrario esa
sentencia fuera esta:
System.out.println("10" + 2);