Entendiendo los Tipos de Variables en Java: Guía Completa
Una variable nos proporciona almacenamiento con nombre que nuestros programas pueden manipular. Cada variable en Java tiene un tipo específico, que determina el tamaño y disposición de la memoria; el rango de valores que puede almacenar; y el conjunto de operaciones aplicables.
Debes declarar todas las variables antes de usarlas. Forma básica de declaración:
tipoDato variable [ = valor][, variable [ = valor] ...] ;
Aquí tipoDato es uno de los tipos de Java y variable el nombre. Para declarar más de una variable del mismo tipo, usa lista separada por comas.
Ejemplos válidos de declaración e inicialización:
Ejemplo
int a, b, c; // Declara tres ints int a = 10, b = 10; // Inicialización byte B = 22; // Inicializa byte double pi = 3.14159; // Declara y asigna PI char a = 'a'; // char inicializado con 'a'
Este capítulo explica los tres tipos de variables en Java:
- Variables locales
- Variables de instancia
- Variables de clase/estáticas
Variables Locales
- Declaradas en métodos, constructores o bloques.
- Creadas al entrar al método/constructor/bloque y destruidas al salir.
- No se pueden usar modificadores de acceso.
- Visibles solo dentro del método/constructor/bloque declarado.
- Implementadas a nivel de pila internamente.
- No tienen valor por defecto; deben declararse e inicializarse antes del primer uso.
Ejemplo
Aquí edad es variable local, definida dentro de pupAge() y su alcance se limita a este método.
Demo en Vivopublic class Prueba {
public void pupAge() {
int edad = 0;
edad = edad + 7;
System.out.println("Edad del cachorro: " + edad);
}
public static void main(String args[]) {
Prueba prueba = new Prueba();
prueba.pupAge();
}
}
Resultado:
Salida
Edad del cachorro: 7
Ejemplo
Usando edad sin inicializar da error en compilación.
Demo en Vivopublic class Prueba {
public void pupAge() {
int edad;
edad = edad + 7;
System.out.println("Edad del cachorro: " + edad);
}
public static void main(String args[]) {
Prueba prueba = new Prueba();
prueba.pupAge();
}
}
Error de compilación:
Salida
Prueba.java:4: variable edad might not have been initialized edad = edad + 7; ^ 1 error
Variables de Instancia
- Declaradas en una clase, fuera de métodos, constructores o bloques.
- Al asignar espacio para un objeto en el heap, se crea un slot para cada variable de instancia.
- Creadas cuando un objeto se crea con 'new' y destruidas cuando el objeto se destruye.
- Guardan valores referenciados por más de un método/constructor/bloque, o partes esenciales del estado del objeto.
- Pueden declararse a nivel de clase antes o después del uso.
- Se pueden dar modificadores de acceso.
- Visibles para todos los métodos, constructores y bloques de la clase. Recomendado hacerlas private; visibilidad para subclases con modificadores.
- Tienen valores por defecto: números 0, booleanos false, referencias null. Valores asignables en declaración o constructor.
- Accesibles directamente por nombre dentro de la clase. En métodos static, usar nombre calificado ReferenciaObjeto.NombreVariable.
Ejemplo
Demo en Vivoimport java.io.*;
public class Empleado {
public String nombre; // visible para subclases
private double salario; // solo visible en Empleado
public Empleado(String empNombre) { nombre = empNombre; }
public void setSalario(double empSal) { salario = empSal; }
public void printEmp() {
System.out.println("nombre: " + nombre);
System.out.println("salario: " + salario);
}
public static void main(String args[]) {
Empleado empUno = new Empleado("Ransika");
empUno.setSalario(1000);
empUno.printEmp();
}
}
Resultado:
Salida
nombre: Ransika salario: 1000.0
Variables de Clase/Estáticas
- Declaradas con
staticen una clase, fuera de métodos/constructores/bloques. - Solo una copia por clase, sin importar cuántos objetos se creen.
- Raramente usadas salvo como constantes. Constantes: public/private, final, static. Nunca cambian.
- Almacenadas en memoria estática. Raro usarlas salvo como constantes public/private final.
- Creadas al iniciar el programa y destruidas al terminar.
- Visibilidad similar a variables de instancia. La mayoría declaradas public para estar disponibles.
- Valores por defecto igual que variables de instancia. Asignables en declaración, constructor o bloques inicializadores estáticos.
- Accesibles llamando con nombre de clase NombreClase.NombreVariable.
- Al declarar public static final, nombres de constantes en mayúsculas. Si no son public/final, sintaxis como variables de instancia/locales.
Ejemplo
Demo en Vivoimport java.io.*;
public class Empleado {
private static double salario;
public static final String DEPARTAMENTO = "Desarrollo ";
public static void main(String args[]) {
salario = 1000;
System.out.println(DEPARTAMENTO + "salario medio: " + salario);
}
}
Resultado:
Salida
Desarrollo salario medio: 1000
Nota – Si se accede desde clase externa, la constante se accede como Empleado.DEPARTAMENTO
¿Qué Sigue?
Ya has usado modificadores de acceso (public & private). El próximo capítulo explicará Modificadores de Acceso y No Acceso en detalle.
Java
- Domine variables y tipos de datos primitivos en C#: Guía completa
- Variables, constantes y literales en C: guía completa
- Entendiendo las clases de almacenamiento en C: ámbito, vida y rendimiento
- Variables y tipos de datos en C++: Guía experta sobre int, double, char, string, bool
- Variables y Literales en Java: Guía Completa
- Tipos de Datos Primitivos en Java: Guía Completa con Ejemplos
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Tipos de anotaciones en Java: Guía completa de predefinidas, personalizadas y meta‑anotaciones