Tabla de Contenidos
Tipos de Datos y Variables
A la hora de escribir programas, vamos a manejar gran cantidad de datos:
- datos introducidos por el usuario
- datos leídos desde un fichero
- datos calculados o creados por nuestro programa
Para poder clasificar estos datos y tratar cada tipo de una forma más personalizada, Java usa distintos tipos de datos
. Se puede ver claramente que los datos contenidos por una imagen son distintos a los datos numéricos, y esto a su vez distintos a los datos de texto.
Cada dato se define con un tipo específico, y se puede gestionar de una forma concreta a ese tipo, o en algunos casos convertirlos a otros tipos que sean semejantes.
Tipos de Datos en Java
Java tiene infinidad de tipos de datos para poder ofrecer un manejo más potente de cada uno de ellos.
Desde el punto de vista más general, en Java solo hay 2 tipos de datos:
- Tipos de
datos primitivos
- Tipos de
datos de referencia
a Objetos, o simplementeObjetos
.
Solo hay 8 tipos primitivos
: son muy fáciles de reconocer. Así que, todo lo que no es un tipo primitivo, sin lugar a dudas, es un objeto
.
Tipos de datos primitivos
Estos tipos de datos son más sencillos de usar, más rápidos, y más ligeros. Solo existen 8 tipos de primitivos:
Tipo primitivo | Valor |
---|---|
int | números enteros con 4000 millones de valores |
byte | números enteros con 256 valores |
short | números enteros con 65000 valores |
long | numeros enteros largos, por encima de los 4000 millones de valores |
float | decimales con coma flotante, precisión simple |
double | decimales con coma flotante, precisión doble |
boolean | valor binario, verdadero o falso |
char | un caracter, 65000 valores |
- Tipos Enteros
byte
8 bits (1 byte)short
16 bits (2 bytes)int
32 bits (4 bytes)long
64 bits (8 bytes)
Representan los números enteros: negativos, positivos y el 0. Dependiendo del tamaño valor que queramos representar usaremos uno u otro. Están codificados mediante complemento a dos
El más usado es el tipo int
.
- Tipos Reales
Representan los números reales, con coma flotante.
float
32 bits (4 bytes)double
64 bits (8 bytes)
Representan los números decimales o con notación científica:
3.14 2.5E12 -> 2,5 * 10 elevado a 12 2E-5 -> 2 * 10 elevado a -5
Están codificados mediante el estándar IEEE 754
- Tipo Booleano
Representan el valores binarios mediante el dominio: true/false
- Tipo Caracter
Representan un único caracter, usando 16 bits, usando codificación unicode
. Los 256 primeros caracteres unicode
corresponden con la tabla ASCII.
Dominio de tipos primitivos
Variables
Las variables son las estructuras en las que almacenamos cada uno de los valores que tenemos en Java. Cada variable se crea para un tipo de datos concreto, ya sea primitivo
o de referencia a objetos
.
Representan un lugar de la memoria del ordenador, y se accede a ella mediante un nombre identificador
. En memoria ocupan el tamaño necesario para el tipo de datos que contiene.
Declaración de una variable
Declarar una variable es el acto de crear una variable. En Java, tan solo tenemos que poner el tipo de datos
de la variable seguido del identificador
, separados por un espacio.
Una variable se crea una sola vez por programa, pero se puede usar muchas veces.
//Variables de tipo primitivo int variableEntera; char letra; boolean respuesta; double numeroDecimal; //Variables de referencia a objetos Scanner objetoLectura; String palabra; File fichero;
Se debe evitar declarar varias variables en la misma linea.
Inicialización de una variable
El concepto de inicializar una variable significa asignarle un valor por primera vez en el programa.
Una variable puede inicializarse en el momento de su declaración (creación) o en un momento posterior.
//Tipos primitivos int numero = -3456; int double = 4.34; boolean valor; valor = false; char letra; letra = 'a'; //Objetos String cadena = "hola"; File fichero = new File();
Constantes
Las constantes
son un tipo de variable que impide modificar su valor. Se usan cuando tenemos variables que sabemos que no van a cambiar su valor.
Se definen al principio de la clase, antes del método main()
. Una variable la hacemos constante mediante el uso de dos palabras reservadas: static
y final
.
public class MiClase{ static final int LIMITE_VELOCIDAD = 120; static final String SALUDO = "Hola Mundo"; public static void main(String[] args){ //código de mi programa } }
Sus identificadores se escriben en CONSTANT_CASE
: solo mayúsculas y barra baja para separar palabras.
Valores Literales
Los valores literales es un aspecto un ligado a ciertos tipos de datos, que suele costar entender al principio. El problema surge al comprender cómo traducir valores de nuestra realidad (pensamientos) a la realidad de la máquina (código binario).
Un valor literal es simplemente la representación del valor de un tipo de datos concreto de Java mediante código escrito.
Literales de enteros
Todo nº entero escrito en el código de java es la representación literal de un tipo int
.
Para los literales de tipo long
debo indicar el caracter L
a continuación del nº entero.
Los tipos byte
y short
no tienen representación literal, pero se usa un literal de tipo int
que no supere el tamaño del tipo.
int numero = 345; numero = -2345665; long enteroLargo = 345L; enteroLargo = -234535234523L byte numeroByte = 120; short numeroShort = 1034;
Literales de reales
Todo nº decimal o con notación científica representa un double
.
Para representar un valor literal de un tipo float
debo indicar el caracter F
a continuación del nº.
// 3.345 ó 3.1E12 son literales double double realDoble = 3.345; realDoble = 3.1E124; // 3.1 x 10^124 float realSimple = 3.345; -> Error de compilación, no es un float realSimple = 3.345F; realSimple = 3.1E-121F; // 3.1 x 10^-121
Literales booleanos
Para representar los valores booleano en el código tenemos únicamente los valores true
y false
;
boolean valor = true; valor = false;
Literales de caracter
Los literales de caracter representan el valor de un solo caracter, aunque eso no quiere decir que se representen con un solo caracter.
Un solo caracter rodeado de comillas simples ' representa un tipo
char
.
char letra = 'a'; letra = ' '; // caracter espacio en blanco letra = '9';
Caracteres de escape
Dentro de los literales de tipo caracter tenemos una serie de caracteres que no se pueden representar de forma escrita: las tabulaciones, los saltos de linea, las comillas dobles o simples, etc.
Para poder representar esos caracteres, se usa lo que se conoce como caracteres de escape
Caracter de escape | Descripción |
---|---|
\n | Salto de linea |
\t | Una tabulación |
\b | Retroceder un caracter |
\r | Retorno de carro |
\' | Comilla simple |
\“ | Comilla doble |
\\ | Contrabarra |
char saltoLinea = '\n'; char tabulacion = '\t';
Literales de cadenas de caracteres
El tipo de datos String representa cadenas de caracteres, pero no es un tipo primitivo, sino un objeto.
Su valor literal consiste en una seria de 0 ó más caracteres dentro de comillas dobles ”
;
String nombre = "Fernando"; nombre = "Maria"; nombre = ""; // cadena de 0 caracteres
© 2024 Fernando Valdeón