Tipos de datos y variable

Tipos de datos y variable.

Variables.

En nuestro primer ejemplo escribíamos un texto en pantalla, pero este texto estaba prefijado dentro de nuestro programa.

Esto no es lo habitual: normalmente los datos que maneje nuestro programa serán el resultado de alguna operación matemática o de cualquier otro tipo. Por eso, necesitaremos un espacio en el que ir almacenando valores temporales y resultados.

En casi cualquier lenguaje de programación podremos reservar esos "espacios", y asignarles un nombre con el que acceder a ellos.  Esto es lo que se conoce como "variables".

Por ejemplo, si queremos que el usuario introduzca dos números y el ordenador calcule la suma de ambos números y la muestre en pantalla, necesitaríamos el espacio para almacenar al menos esos dos números iniciales (en principio, para la suma no sería imprescindible, porque podemos mostrarla en pantalla nada más calcularla, sin almacenarla previamente en ningún sitio).  Los pasos a dar serían los siguientes:

 

Pues bien, en este programa estaríamos empleando dos variables llamadas "primerNumero" y "segundoNumero". Cada una de ellas sería un espacio de memoria capaz de almacenar un número.

El espacio de memoria que hace falta "reservar" será distinto según la precisión que necesitemos para ese número, o según lo grande que pueda llegar a ser dicho número. Por eso, tenemos disponibles diferentes "tipos de variables".

Por ejemplo, si vamos a manejar números sin decimales ("números enteros") de como máximo 9 cifras, nos interesaría el tipo llamado "int" (abreviatura de "integer", que es "entero" en inglés). Este tipo de datos consume un espacio de memoria de 4 bytes (1 Mb es cerca de 1 millón de bytes). Si no necesitamos guardar datos tan grandes (por ejemplo, si nuestros datos va a ser números inferiores a 1.000), podemos emplear el tipo de datos llamado "short" (entero "corto").

Los tipos de datos númericos disponibles en Java son los siguientes:

Nombre

¿Admite decimales?

Valor mín.

Valor máx.

Precisión

Ocupa

byte

no

-128

127

-

1 byte

short

no

-32.768

32.767

-

2 bytes

int

no

-2.147.483.648

2.147.483.647

-

4 bytes

long

no

-9.223.372.036.854.775.808

9..223.372.036.854.775.807

-

8 bytes

float

1.401298E-45

3.402823E38

6-7 cifras

4 bytes

double

4.94065645841247E-324

1.79769313486232E308

14-15 cifras

8 bytes

La forma de "declarar" variables de estos tipos es la siguiente:

int numeroEntero;    // La variable numeroEntero será un número de tipo "int"
short distancia;     // La variable distancia guardará números "short"
long gastos;         // La variable gastos es de tipo "long"
byte edad;           // Un entero de valores "pequeños"
float porcentaje;    // Con decimales, unas 6 cifras de precisión
double numPrecision; // Con decimales y precisión de unas 14 cifras

(es decir, primero se indica el tipo de datos que guardará la variable y después el nombre que queremos dar a la variable).

Se pueden declarar varias variables del mismo tipo "a la vez":

int primerNumero, segundoNumero;    // Dos enteros

Y también se puede dar un valor a las variables a la vez que se declaran:

int a = 5;            // "a" es un entero, e inicialmente vale 5
short b=-1, c, d=4;   // "b" vale -1, "c" vale 0, "d" vale 4

Los nombres de variables pueden contener letras y números (y algún otro símbolo, como el de subrayado, pero no podrán contener otros muchos símbolos, como los de las distintas operaciones matemáticas posibles, ni podrán tener vocales acentuadas o eñes).

Vamos a aplicarlo con un ejemplo sencillo en Java que sume dos números:

    /* -------------------------------*
     *  Introducción a Java - Ejemplo *
     * -------------------------------*
     *  Fichero: suma.java            *
     *  (Suma dos números enteros)    *
     * -------------------------------*/
 

class Suma2 {

  public static void main( String args[] ) {

     int primerNumero = 56;    // Dos enteros con valores prefijados
     int segundoNumero = 23;

     System.out.println( "La suma es:" );  // Muestro un mensaje de aviso
     System.out.println( primerNumero+segundoNumero ); 

       // y el resultado de la operación
   }
}
 

Hay una importante diferencia entre las dos órdenes "println": la primera contiene comillas, para indicar que ese texto debe aparecer "tal cual", mientras que la segunda no contiene comillas, por lo que no se escribe el texto "primerNumero+segundoNumero", sino que se intenta calcular el valor de esa expresión (en este caso, la suma de los valores que en ese momento almacenan las variables primerNumero y segundoNumero, 56+23 = 89).

Lo correcto habría sido que los datos no los hubiéramos escrito nosotros en el programa, sino que fuera el usuario quien los hubiera introducido, pero esto es algo relativamente complejo cuando creamos programas "en modo texto" en Java (al menos, comparado con otros lenguajes anteriores), y todavía no tenemos los conocimientos suficientes para crear programas en "modo gráfico", así que más adelante veremos cómo podría ser el usuario de nuestro programa el que introdujese los valores que desea sumar.
 

Tenemos otros dos tipos básicos de variables, que no son para datos numéricos:

Estos ocho tipos de datos son lo que se conoce como "tipos de datos primitivos" (porque forman parte del lenguaje estándar, y a partir de ellos podremos crear otros más complejos).

Nota para C y C++: estos tipos de datos son muy similares a los que se emplean en C y en C++, apenas con alguna "pequeña" diferencia, como es el hecho de que el tamaño de cada tipo de datos (y los valores que puede almacenar) son independientes en Java del sistema que empleemos, cosa que no ocurre en C y C++, lenguajes en los que un valor de 40.000 puede ser válido para un "int" en unos sistemas, pero "desbordar" el máximo valor permitido en otros. Otra diferencia es que en Java no existen enteros sin signo ("unsigned"). Y otra más es que el tipo "boolean" ya está incorporado al lenguaje, en vez de corresponder a un entero disinto de cero

 

Regresar.