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.

edad
int
25
0x7FF...1234
nombre
String
"Ana"
0x7FF...5678
precio
double
19.99
0x7FF...9ABC

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;
edad int ?

Variable declarada pero sin valor asignado

2. Inicialización

Asignar valor inicial

int edad = 25;
edad int 25

Variable declarada e inicializada

3. Asignación

Cambiar el valor almacenado

edad = 26;
edad int 26

Valor actualizado

Practica la Declaración

Editor de Variables
1
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 bits
Descripción

Entero de 8 bits con signo. Ideal para ahorrar memoria cuando se trabajan valores pequeños.

Rango
-128
127
Mínimo: -128 Máximo: 127 Valores posibles: 256
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

byte
short
int
long
float
double
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

Valor Original
127.8
double
Valor Convertido
127
int
Pérdida
0.8
decimales
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
VS

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
Puntaje: 0/6

Ámbito de Variables (Scope)

Ámbito de Bloque

Variables declaradas dentro de { }

public void metodo() {
int x = 10;
System.out.println(x); // ✅
}
System.out.println(x); // ❌ Error
Solo visible aquí
x = 10

Ámbito de Clase

Variables declaradas a nivel de clase

public class MiClase {
int contador = 0;
public void metodo1() {
contador++; // ✅
}
public void metodo2() {
contador--; // ✅
}
}

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);
    }
}
Ámbito Global
claseVariable 100
Método main()
mainVariable 50
args []
Bloque if
bloqueVariable 25
1 claseVariable declarada = 100
4 mainVariable declarada = 50
7 bloqueVariable declarada = 25
15 bloqueVariable ya no existe

Ejercicios Prácticos

Calculadora de Edad

Declara variables para calcular la edad en diferentes unidades:

  1. Crea una variable int anioNacimiento con tu año de nacimiento
  2. Crea una variable int anioActual con el año actual
  3. Calcula la edad en años y almacénala en int edadAnios
  4. Calcula la edad en meses (aproximadamente)
  5. 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 final para 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;

Test de Conocimientos

1
2
3
4
5

¿Cuál es el tamaño en bytes del tipo int?