¿Qué son los enums en Java?

Contenido del Bootcamp Dirigido por: | Última modificación: 4 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes que es enum en programacion?

Si has trabajado con el lenguaje Java, es posible que te hayas encontrado con los enums o enumerable java, que se definen como el elemento a cargo de la representación de las constantes con nombre.

Así que, si te interesa aprender más sobre un enum en Java, quédate en este artículo para aprender todo lo que debes saber al respecto de esta opción, incluyendo cuáles son sus propiedades más importantes.

enums en Java

¿Qué son los enums en Java?

Los enums java, llamados también enumeraciones, enumerador o listado específico, se refieren a la herramienta que permite representar conjuntos de constantes con un nombre en el lenguaje de programación.

Estas enumeraciones se utilizan cuando se tiene conocimiento completo con respecto a los valores posibles en tipo de compilación, como pueden ser las opciones en un menú y demás. Esto quiere decir que el uso de los enums se recomienda cuando se tengan valores que se sabe que no van a ser modificados, como pueden ser colores, meses o días específicos, entre otros.

Es importante aclarar que no se requiere que el grupo de constantes pertenecientes al enum permanezca fijo.

Características de los enums en Java

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Dentro de las características y propiedades que destacan de los enumeradores en Java, se encuentra su labor para realizar la definición de los propios tipos de datos del usuario. Esto implica que su uso permite la reducción del universo de valores posibles que deben almacenarse.

De forma que estos recursos se reconocen como un tipo de clase (class) del lenguaje de programación, pues incluyen las mismas capacidades que otro tipo de clases en el sistema.

De modo que estos enumeradores tienen la propiedad de agregar múltiples variables, llevar a cabo procesos de implementación de interfaces y demás.

Otra de las características de los enums de Java es que pueden incluir métodos y atributos, por lo que es posible utilizarlos para el desarrollo de objetos.

Asimismo, estas enumen no pueden extenderse ni tampoco heredan otras clases de Java.

Sintaxis básica y ejemplos prácticos

Declaración básica

public enum Dia {
LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO
}

Uso en código

public class EjemploEnum {
Dia dia;

public EjemploEnum(Dia dia) {
this.dia = dia;
}

public void decirDia() {
switch (dia) {
case LUNES:
System.out.println("Hoy es Lunes");
break;
case VIERNES:
System.out.println("Hoy es Viernes");
break;
case DOMINGO:
System.out.println("Hoy es Domingo");
break;
default:
System.out.println("Hoy no es Lunes, Viernes ni Domingo");
break;
}
}

public static void main(String[] args) {
EjemploEnum ejemplo = new EjemploEnum(Dia.LUNES);
ejemplo.decirDia();
}
}

Comparación con otras estructuras de datos: Los ennums en Java proporcionan una forma más segura y estructurada de manejar constantes que el uso de clases constantes (static final). A diferencia de las clases constantes, los enums son tipos de datos completos y tienen capacidades adicionales como métodos y propiedades.

Casos de uso comunes de enums

  • Menús y opciones fijas: Para representar elementos de un menú donde las opciones son fijas y conocidas.
  • Estados de un proceso: Como en un flujo de trabajo donde los estados posibles están predefinidos.
  • Días de la semana, meses del año: Para manejar estos valores de manera segura y legible.

Métodos específicos asociados con enums

values()

for (Dia dia : Dia.values()) {
System.out.println(dia);
}

ordinal()

Dia dia = Dia.LUNES;
System.out.println(dia.ordinal()); // Imprime 0

name()

Dia dia = Dia.LUNES;
System.out.println(dia.name()); // Imprime "LUNES"

Manejo de enums en colecciones

EnumSet<Dia> diasLaborales = EnumSet.of(Dia.LUNES, Dia.MARTES, Dia.MIERCOLES, Dia.JUEVES, Dia.VIERNES);
for (Dia dia : diasLaborales) {
System.out.println(dia);
}

Uso de enums en patrones de diseño

Singleton

public enum Singleton {
INSTANCE;

public void hacerAlgo() {
System.out.println("Singleton utilizando enum");
}
}

Strategy

public enum Estrategia {
ESTRATEGIA_A {
@Override
public void ejecutar() {
System.out.println("Estrategia A");
}
},
ESTRATEGIA_B {
@Override
public void ejecutar() {
System.out.println("Estrategia B");
}
};

public abstract void ejecutar();
}

Limitaciones y mejores prácticas

Limitaciones

  • No pueden extender otras clases: Los enums en Java no pueden heredar de otras clases.
  • Falta de flexibilidad: Los enums son fijos y no pueden modificarse dinámicamente.

Mejores prácticas

  • Uso en conjuntos de constantes bien definidas: Utiliza enums cuando los valores son constantes y conocidos.
  • Agrupación lógica: Agrupa enums en el contexto donde se utilizan para mejorar la legibilidad del código.

En este artículo has podido conocer qué son los enums en Java, así como en qué consisten sus características más importantes. Ahora que ya has llegado hasta este punto, atrévete a dar el siguiente paso en tu aprendizaje, aprende tipos enumerados java y matricúlate pronto en nuestro Bootcamp de programación desde cero. Con la guía de estas formación intensiva, podrás seguir profundizando acerca de esta y otras opciones de utilidad en el sector tecnológico. ¡Apúntate ya y obtén una ventaja frente a tus competidores!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.