Enums de Java – así es como funciona

Con los enums (abreviatura de enumeración), Java te ofrece como programador la posibilidad de definir constantes predefinidas para tus variables. Esto es especialmente útil cuando una variable sólo tiene un pequeño número de estados nombrables.

Puede ser, por ejemplo, cartas de juego (tréboles, picas, corazones, diamantes) o el nombre del día de la semana.

  • Define un tipo enum
  • Crea una variable enum
  • Ejemplo de aplicación

Define un tipo enum

Define un enum para los días de la semana con la siguiente sintaxis:

public enum WeekDay

{
LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SÁBADO, DOMINGO
}

WeekDay es el identificador del enum aquí. Este nombre también se utiliza posteriormente para declarar variables de este tipo. Los días de la semana Lunes, Martes, ... son los posibles valores que puede tomar una variable del tipo Día de la Semana. Alternativamente, puedes elegir cualquier otra asignación para tus variables. Para el ejemplo de los naipes anterior, se utilizaría la siguiente sintaxis:

public enum Cards
{
CLUBS, SPADES, HEARTS, DIAMONDS
}

Creación de una variable enum

Así es como se declara una variable de tipo WeekDay y se le asigna un valor.

WeekDay day = WeekDay.LUNES;

Día de la semana es ahora la palabra clave para el tipo de enumeración que se acaba de crear.

System.out.println(día);

Cuando la variable se muestra en la consola de esta manera, la cadena "Lunes" aparece en la consola.

Ejemplo de aplicación

La variable día también se puede comparar en expresiones lógicas. Por ejemplo, ahora puede consultar el día de la semana en una construcción switch:

String message = "";
WeekDay day = WeekDay.FRIDAY;
switch(day)
{
case MONDAY:
case TUESDAY:
case WEDNESDAY:
message = "Anímate, la semana acaba de empezar.";
break;

case JUEVES:
case VIERNES:
message = "¡Pronto llegará el fin de semana!";
break;

case SÁBADO:
case DOMINGO:
message = "¡Por fin el fin de semana!";
}
System.out.println(message);

La salida del código cambia dependiendo del estado de la variable día.