Aunque no lo creas, existe una herramienta con la que puedes trabajar con un conjunto de valores fijos en tu código. Los enum constants en Java llegaron para hacerte la vida más fácil cuando debas trabajar con esos valores que no deben cambiar, como días de la semana, niveles de gravedad o estados de un sistema. Voy a explicarte cómo puedes trabajar con los enum constants en Java de forma fácil, para que sigas aprendiendo a programar con Java.
¿Qué son los enum constants en Java?
En Java, un enum (enumeration) es una estructura especial para definir un conjunto de valores constantes. No son como las variables tradicionales, que pueden cambiar de valor, sino que son inmutables, es decir, no los puedes modificar luego de que los hayas definido.
Entonces, la palabra clave enum se usa para declarar un tipo enum, y cada uno de los valores dentro de este enum se conoce como enum constants. Los enum constants en Java se escriben generalmente en mayúsculas, por convención, para diferenciarlos de otras variables.
Ejemplo de declaración de enum constants
enum Level {
LOW,
MEDIUM,
HIGH
}
Lo que hice fue crear un enum llamado Level con tres enum constants: LOW, MEDIUM y HIGH. Estos representan tres posibles niveles de gravedad o importancia en nuestro sistema.
¿Cómo acceder a los enum constants en Java?
Luego de que definas un enum con sus enum constants, puedes acceder a estos valores utilizando la sintaxis de punto (.
). Tal y como te muestro aquí:
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM; // Accediendo a un enum constant
System.out.println(myVar); // Imprime: MEDIUM
}
}
¿Viste?, aquí estamos accediendo al enum constant MEDIUM del enum Level. La salida del programa será:
MEDIUM
¿Cuándo y por qué usar enum constants en Java?
Los enum constants en Java te servirán para trabajar con un conjunto de valores fijos, como estos:
- Días de la semana: Si estás trabajando con una aplicación que requiere manejar días de la semana, usa los enum constants para representar valores fijos como MONDAY, TUESDAY, etc.
- Estados de un sistema: En una aplicación que cambia de estado, como una máquina expendedora o un sistema de pagos, usa los enum constants para definir estados como IDLE, PROCESSING, COMPLETED.
- Niveles de un sistema: Si tienes un sistema que categoriza información en niveles, como un sistema de alertas con niveles como LOW, MEDIUM, HIGH, los enums le darán claridad al código.
Usando enum constants en una declaración switch
Te recomiendo usar los enum constants en Java dentro de una declaración switch. Así será mucho más fácil tomar decisiones basadas en el valor de un enum.
Ejemplo de cómo usar enum en un switch:
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
En este caso, estamos usando un enum constant dentro de un switch para realizar una acción según el valor del enum. Así verás la salida del programa:
Medium level
Iterando sobre los enum constants
Lo grandioso es que con los enum constants en Java puedes iterar fácilmente sobre todos los valores de un enum usando el método values().
Este método devuelve un arreglo con todos los enum constants definidos en ese tipo enum.
Ejemplo de iteración sobre enum constants:
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
for (Level level : Level.values()) {
System.out.println(level);
}
}
}
La salida será así:
LOW
MEDIUM
HIGH
Este tipo de iteración te servirá cuando tengas que procesar todos los valores posibles de un enum, como cuando se debe mostrar una lista de opciones en una interfaz de usuario.
Diferencias entre enum y clases
Los enum constants son diferentes de las clases tradicionales. Puede que se comporten de manera similar, pero estas son las diferencias que debes tener muy claras:
- Inmutabilidad: Las enum constants son public, static y final. Esto significa que no pueden ser modificadas, lo que garantiza que el conjunto de valores de un enum permanezca constante a lo largo del programa.
- Métodos y atributos: Al igual que las clases, los enums pueden tener métodos y atributos. Sin embargo, a diferencia de las clases, los valores de los enum constants no pueden ser cambiados una vez asignados.
- No pueden crear instancias: No puedes crear una nueva instancia de un enum con el operador new, ya que los enum constants son predefinidos y no se pueden modificar.
¡Considera apuntarte a nuestro Bootcamp de Java Full Stack en KeepCoding y aprende mucho más! Te proporcionaremos todas las herramientas necesarias para convertirte en un experto en Java y en el desarrollo de aplicaciones web. ¡Transforma tu futuro en la programación!