Variables y Tipos de Datos en Java
Aprende a almacenar y manipular información en tus programas
¿Qué es una Variable?
Una variable es como una caja
Almacena datos que puedes usar y modificar durante la ejecución del programa.
Definición Técnica:
Una variable es un espacio en memoria reservado para almacenar un valor que puede cambiar durante la ejecución del programa.
Nombre
Identificador único para acceder a la variable
edad, nombre, contador
Tipo
Determina qué tipo de datos puede almacenar
int, String, double
Valor
Dato almacenado en la variable
25, "Ana", 19.99
Dirección
Ubicación en memoria del computador
0x7FF...1234
Declaración de Variables
1. Declaración
Reservar espacio en memoria
int edad;
Variable declarada pero sin valor asignado
2. Inicialización
Asignar valor inicial
int edad = 25;
Variable declarada e inicializada
3. Asignación
Cambiar el valor almacenado
edad = 26;
Valor actualizado
Practica la Declaración
2
3
4
5
6
Estado de Memoria:
Salida:
Ejecuta el código para ver la salida
Desafío:
Intenta declarar tres variables:
String nombre,
double precio,
boolean activo
Tipos de Datos Primitivos
Tipos Numéricos Enteros
Tipos Numéricos Decimales
Otros Tipos
byte
8 bitsDescripción
Entero de 8 bits con signo. Ideal para ahorrar memoria cuando se trabajan valores pequeños.
Rango
Ejemplos de Uso
byte edad = 25;
Edad de una persona
byte temperatura = -5;
Temperatura en grados
byte contador = 100;
Contador pequeño
Errores Comunes
byte numero = 200; // Error: fuera de rango
200 excede el máximo de 127 que puede almacenar un byte
Calculadora de Bits
Signo: 0 (positivo)
Valor: 25
Comparación de Tipos Primitivos
| Tipo | Tamaño | Rango | Valor por Defecto | Ejemplo | Uso Típico |
|---|---|---|---|---|---|
byte |
8 bits | -128 a 127 | 0 | byte b = 100; |
Archivos, datos crudos |
short |
16 bits | -32,768 a 32,767 | 0 | short s = 1000; |
Ahorro de memoria |
int |
32 bits | -2^31 a 2^31-1 | 0 | int i = 100000; |
Enteros generales |
long |
64 bits | -2^63 a 2^63-1 | 0L | long l = 100000L; |
Números grandes |
float |
32 bits | ±3.4E-38 a ±3.4E+38 | 0.0f | float f = 3.14f; |
Decimales precisión simple |
double |
64 bits | ±1.7E-308 a ±1.7E+308 | 0.0d | double d = 3.14159; |
Decimales precisión doble |
char |
16 bits | '\u0000' a '\uffff' | '\u0000' | char c = 'A'; |
Caracteres Unicode |
boolean |
1 bit* | true / false | false | boolean b = true; |
Valores lógicos |
Conversión de Tipos (Casting)
Conversión Implícita
Automática, de menor a mayor precisión
int entero = 100;
double decimal = entero; // 100.0
Conversión Explícita
Manual, de mayor a menor precisión (casting)
double precio = 19.99;
int precioEntero = (int) precio; // 19
Pérdida de precisión al convertir a tipos más pequeños
Simulador de Casting
Código Generado:
double valorOriginal = 127.8;
int valorConvertido = (int) valorOriginal;
Variables vs Constantes
Variable
Su valor puede cambiar durante la ejecución
int contador = 0;
contador = 1; // ✅ Permitido
contador = 2; // ✅ Permitido
¿Cuándo usar?
- Contadores
- Resultados de cálculos
- Entradas de usuario
- Estado que cambia
Constante (final)
Su valor NO puede cambiar después de inicializarse
final double PI = 3.14159;
PI = 3.14; // ❌ ERROR: No se puede modificar
¿Cuándo usar?
- Valores matemáticos (π)
- Configuraciones fijas
- Días de la semana
- Valores que no deben cambiar
Juego: Identifica las Constantes
Arrastra cada valor a la categoría correcta:
Math.PI
edadUsuario
DIAS_SEMANA
saldoCuenta
VELOCIDAD_LUZ
temperatura
Constantes (final)
Variables
Ámbito de Variables (Scope)
Ámbito de Bloque
Variables declaradas dentro de { }
Ámbito de Clase
Variables declaradas a nivel de clase
Explorador de Ámbito
public class ScopeDemo {
// Variable de clase
static int claseVariable = 100;
public static void main(String[] args) {
// Variable local al método main
int mainVariable = 50;
if (true) {
// Variable de bloque if
int bloqueVariable = 25;
System.out.println("Dentro del if:");
System.out.println("claseVariable: " + claseVariable);
System.out.println("mainVariable: " + mainVariable);
System.out.println("bloqueVariable: " + bloqueVariable);
}
// bloqueVariable no es accesible aquí
// System.out.println(bloqueVariable); // ❌ Error
System.out.println("Fuera del if:");
System.out.println("claseVariable: " + claseVariable);
System.out.println("mainVariable: " + mainVariable);
}
}
Ejercicios Prácticos
Calculadora de Edad
Declara variables para calcular la edad en diferentes unidades:
- Crea una variable
int anioNacimientocon tu año de nacimiento - Crea una variable
int anioActualcon el año actual - Calcula la edad en años y almacénala en
int edadAnios - Calcula la edad en meses (aproximadamente)
- Calcula la edad en días (aproximadamente)
Mini-Reto: Declaración Correcta
Selecciona las declaraciones de variables correctas:
Resumen y Buenas Prácticas
Reglas de Nombres
- Usa camelCase:
miVariable - Comienza con letra o _
- No usar palabras reservadas
- Nombres descriptivos
- Evitar nombres genéricos
Errores Comunes
- No inicializar variables
- Usar tipos incorrectos
- Olvidar el punto y coma
- Ámbito incorrecto
- Casting innecesario
Consejos Profesionales
- Usa
finalpara constantes - Elige el tipo más adecuado
- Inicializa al declarar
- Documenta variables complejas
- Usa nombres autoexplicativos
Hoja de Referencia Rápida
Declaración Básica:
tipo nombre;
tipo nombre = valor;
Tipos Primitivos:
int, double, boolean, char
byte, short, long, float
Casting:
// Implícito (automático)
int a = 10;
double b = a;
// Explícito (manual)
double x = 9.99;
int y = (int) x;
Constantes:
final double PI = 3.14159;
final int MAX_USUARIOS = 100;