Saltar al contenido principal
Documentos
Java keywordsMatrices JavaProgramación orientada a objetos en JavaJava File HandlingIntroducción a JavaConceptos básicos del lenguaje Java

Enums Java

Los Enums en Java son un tipo de datos especial que permite que una variable sea un conjunto de constantes predefinidas. Se utilizan para definir una colección de constantes que se conocen en tiempo de compilación, como días de la semana, direcciones o estados. Los Enums mejoran la seguridad de tipos y la legibilidad de tu código al proporcionar una forma de representar conjuntos fijos de constantes.

Utilización

Los Enums se utilizan cuando tienes un conjunto fijo de constantes relacionadas. Son especialmente útiles cuando quieres asegurarte de que una variable sólo puede tomar uno de un pequeño conjunto de valores posibles.

Syntax

enum EnumName {
    CONSTANT1, CONSTANT2, CONSTANT3
}
  • NombreEnum: El nombre del enum.
  • CONSTANT1, CONSTANT2, CONSTANT3: Las constantes definidas dentro del enum.

Ejemplos

Ejemplo 1: Enum básico

public class EnumExample {
    enum Day {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
    }

    public static void main(String[] args) {
        Day today = Day.WEDNESDAY;
        System.out.println("Today is: " + today);
    }
}

En este ejemplo, se define un enum llamado Day con constantes para cada día de la semana. A la variable today se le asigna el valor Day.WEDNESDAY, y el programa imprime el día actual.

Ejemplo 2: Enum con métodos

public class EnumWithMethodExample {
    enum Size {
        SMALL, MEDIUM, LARGE;

        public String getSize() {
            switch (this) {
                case SMALL:
                    return "Small Size";
                case MEDIUM:
                    return "Medium Size";
                case LARGE:
                    return "Large Size";
                default:
                    return "Unknown Size";
            }
        }
    }

    public static void main(String[] args) {
        Size size = Size.MEDIUM;
        System.out.println("Selected size: " + size.getSize());
    }
}

Este ejemplo muestra un enum Size con un método getSize() que devuelve una cadena basada en la constante del enum. El método utiliza una sentencia switch para determinar la cadena adecuada para cada tamaño.

Ejemplo 3: Enum con campos y constructor

public class EnumWithFieldsExample {
    enum Color {
        RED("#FF0000"), GREEN("#00FF00"), BLUE("#0000FF");

        private String hexCode;

        Color(String hexCode) {
            this.hexCode = hexCode;
        }

        public String getHexCode() {
            return hexCode;
        }
    }

    public static void main(String[] args) {
        Color color = Color.RED;
        System.out.println("Color: " + color + ", Hex Code: " + color.getHexCode());
    }
}

Aquí, el enum Color tiene un campo hexCode y un constructor para inicializarlo. Cada constante de color está asociada a un código hexadecimal. El método getHexCode() recupera el código hexadecimal de un color determinado.

Consejos y buenas prácticas

  • Utiliza Enums para Conjuntos Constantes: Utiliza enums cuando tengas un conjunto fijo de constantes que estén relacionadas lógicamente.
  • Tipo Seguridad: Los Enums proporcionan seguridad de tipo en tiempo de compilación, garantizando que no se asignen valores no válidos a las variables.
  • Métodos y campos: Los Enums pueden tener campos, métodos y constructores, lo que permite un comportamiento más complejo y la encapsulación de datos.
  • Declaraciones de cambio: Los Enums funcionan bien con las sentencias switch, lo que hace que el código sea más legible y fácil de mantener.
  • Evita utilizar ordinales: Evita utilizar el método ordinal de los enum para la persistencia o la lógica, ya que puede dar lugar a errores si cambia el orden de los enum.

Si sigues estas prácticas recomendadas, podrás aprovechar todo el potencial de las enumeraciones en Java para crear un código más sólido y fácil de mantener.

Aprende Java Essentials

Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.
Empieza a aprender gratis