Saltar a contenido

Tipos de datos

Un tipo de datos es un conjunto de valores y un conjunto de operaciones definidas en ellos. Se pueden clasificar en primitivos y objetos.

Tipos de datos

Tipos nativos

Los primitivos son los más básicos y fundamentales, vienen integrados en Java. Especifican el tipo de valor almacenado en una variable y el tamaño de la memoria. Hay 8 tipos primitivos de datos integrados en el lenguaje Java. Estos incluyen: int, byte, short, long, float, double, boolean y char.

byte

Como su propio nombre denota, emplea un solo byte (8 bits) de almacenamiento. Esto permite almacenar valores en el rango [-128, 127]. Raramente se usa. Ocupa menos memoria y puede ser más rápido accedido.

short

Usa el doble de almacenamiento que el anterior, es decir, ocupa 16 bits [-32.768, 32.767].

int

Emplea 4 bytes (32 bits) de almacenamiento y es el tipo de dato entero más empleado. Necesita cuatro veces el espacio que ocupa un byte. Es el entero predeterminado usado en Java.

long

Es el tipo entero de mayor tamaño, 8 bytes (64 bits).

float

Tiene una parte flotante que sirve para expresar números decimales. Es de simple precisión (formato y cantidad de espacio que ocupa) porque ocupa 32 bits. No se recomienda mucho su uso.

double

Es un número de precisión doble y ocupa 64 bits. Es el flotante predeterminado en Java. Se recomienda su uso. Muchas librerías internas de Java, relacionadas con operaciones matemáticas, usan double.

char

Se utiliza para almacenar caracteres (letras, números, signos, etc.) individuales. Ocupa 2 bytes en memoria (16 bits). Permite almacenar caracteres Unicode. Unicode es un estándar de codificación internacional que nos permite representar diferentes idiomas; y la forma en que funciona es usando una combinación de los dos bytes que un char ocupa en la memoria, que puede representar hasta 65535 diferentes tipos de caracteres

Un carácter precedido por una barra invertida (\) es una secuencia de escape y tiene un significado especial para el compilador.

boolean

Sólo permite almacenar dos posibles valores que son true o false. Tiene la finalidad de facilitar el trabajo con valores "verdadero/falso" (booleanos), resultantes por regla general de evaluar expresiones.

Este tipo de datos representa un bit de información, pero su "tamaño" no es algo que esté definido con precisión.

Wrapper classes (clases contenedores)

Las clases contenedoras proporcionan una forma de utilizar tipos de datos primitivos como objetos. En Java, tenemos una Wrapper class para cada uno de los 8 tipos de datos primitivos, estas clases las veremos más avanzado el curso.

String

Un String es un tipo de dato no primitvo que, en Java representa una cadena de caracteres no modificable. Todos los literales de la forma "cualquier texto", es decir, literales entre comillas dobles, que aparecen en un programa java se implementan como objetos de la clase String.

Tres manera de usarlos

  • Comillas dobles p. ej. String texto = "IES La Encantá";
  • Utilizando new p. ej. String texto2 = new String ("IES La Encantá");
  • Utilizando el operador concatenación + p. ej. String s2 = texto + " 2024”; //s2 contiene "IES La Encantá 2023"

Operador concatenación

La clase proporciona el operador + (concatenación) para unir dos o más String. El resultado de aplicar este operador es un nuevo String concatenación de los otros.

Índices

Cada uno de los caracteres que forman un String son del tipo primitivo char. Los caracteres de un string están numerados internamente con índices empezando desde el cero:

Índices de un String

El primer carácter tiene índice 0 y el último tiene la longitud del string menos 1.

Métodos de la clase String

La clase String proporciona métodos para el tratamiento de las cadenas de caracteres: acceso a caracteres individuales, buscar y extraer una subcadena, copiar cadenas, convertir cadenas a mayúsculas o minúsculas, etc.

Métodos de un String

¿Cómo los uso?

Para acceder a alguno de los métodos siguientes utilizamos la notación .

String texto = "Clase";
int longitud = texto.length(); //devuelve 5 

Comparar Strings

Los operadores relacionales como == o < o > no se utilizan para comparar Strings, aunque el código compile no es correcto, ya que == compara objetos, y devolvería falso aunque dos strings tuvieran el mismo texto puesto que son objetos diferentes. Para comparar Strings utilizamos el método equals.

String name = "Luffy";

  if (name.equals("Luffy")) {
    System.out.println("Coincide.");
  }
La siguiente tabla muestra los métodos que se utilizan para comparar String

Comparación de un String

char dentro de String

Como se ha comentado, un String está compuesto de caracteres tipo char. Para acceder a los caracteres dentro de un String usamos el método charAt(). Se puede usar la concatenación + para concatenar char con String.

String food = "cookie";
char firstLetter = food.charAt(0); // 'c'
System.out.println(firstLetter + " is for " + food); 

char

A todos los valores char se les asigna un número internamente por el ordenador, son los llamados valores ASCII

Cuidando con sumar enteros

Mezclar tipos de datos char e int automáticamente causa una conversión en entero.

'a' + 10 --> devuelve 107.

Para convertir un entero en su equivalente a carácter (char) haríamos:

(char) ('a' + 2) --> devuelve 'c'

Diferencias entre char y String

  • String es un objeto, por tanto, contiene métodos.
  • char es un tipo de dato primitivo, no puedes llamar a métodos con él.
  • String utiliza comillas dobles.
  • char utiliza comillas simples.
  • No se puede comparar un String usando operadores relacionales.
  • Sí se puede comparar un char usando operadores relacionales: 'a' < 'b', 'X' == 'X', ...

Actividades

  • AC 201 (RA1 / CE1b CE1c CE1d / IC1 / 3p) Ayúdate de los rangos de los valores para saber qué tipo de datos es, del nombre que se le ha dado y del valor que almacena cada variable. Las variables con valor Fórmula, son variables que calculan expresiones ayudándose de otras variables. Su tipo de datos es el predefinido por Java.
AC201

Note

Muestra las variables por pantalla con su nombre como hacemos en el siguiente ejemplo:

System.out.println(isOccupied: + isOccuppied); 
Salida por pantalla: isOccupied: false

Entrega un zip con el código del programa y un PDF con capturas y comentarios.