Saltar a contenido

💾 Enumeraciones (enum) en Java

En Java, un enum (abreviatura de enumeration) es un tipo especial de clase que representa un conjunto fijo y finito de constantes.

Se usa cuando sabemos que una variable solo puede tomar un conjunto limitado de valores.


Convenciones de nomenclatura

Nombrado el enum:
- Se escribe como una clase: UpperCamelCase (cada palabra empieza en mayúscula). DiaSemana, Talla, EstadoPedido, ...

Nombrado en los valores del enum:
- Se escriben como constantes: MAYÚSCULAS.
- Si son varias palabras → separadas con guiones bajos.

enum DiaSemana {
    LUNES, MARTES, MIERCOLES, JUEVES,
    VIERNES, SABADO, DOMINGO
}

enum EstadoPedido {
    PENDIENTE,
    EN_PROCESO,
    COMPLETADO,
    CANCELADO
}

✅ Definición básica

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

Aquí hemos creado un tipo Dia que solo puede tomar uno de esos 7 valores.


🔹 Uso de un enum

public class EjemploEnum {
    public static void main(String[] args) {
        Dia hoy = Dia.LUNES;

        if (hoy == Dia.LUNES) {
            System.out.println("¡Ánimo, empieza la semana!");
        }
    }
}

🔹 Recorrer todos los valores

Cada enum tiene un método values() que devuelve un array con todos los valores.

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

Salida:

LUNES
MARTES
MIERCOLES
JUEVES
VIERNES
SABADO
DOMINGO

🔹 Enum con atributos y métodos

Un enum también puede tener campos, constructores y métodos.

enum Semaforo {
    ROJO("Detente"),
    AMARILLO("Precaución"),
    VERDE("Avanza");

    private String accion;

    // Constructor
    Semaforo(String accion) {
        this.accion = accion;
    }

    public String getAccion() {
        return accion;
    }
}

public class EjemploSemaforo {
    public static void main(String[] args) {
        Semaforo s = Semaforo.ROJO;
        System.out.println(s.getAccion()); // "Detente"
    }
}

🔹 Uso en switch

enum Talla { S, M, L, XL }

public class EjemploSwitch {
    public static void main(String[] args) {
        Talla t = Talla.M;

        switch (t) {
            case S -> System.out.println("Pequeña");
            case M -> System.out.println("Mediana");
            case L -> System.out.println("Grande");
            case XL -> System.out.println("Extra grande");
        }
    }
}

📌 Resumen

  • Un enum es un tipo que define un conjunto fijo de constantes.
  • Se usa para mejorar legibilidad y seguridad en el código.
  • Puede tener atributos, constructores y métodos.
  • Funciona muy bien en switch.

👉 Los enums son ideales para representar opciones fijas: días de la semana, colores, tallas, estados de un pedido, etc.