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

enum Palabra clave en Java

La palabra clave enum en Java se utiliza para definir un conjunto de constantes con nombre. Es un tipo de datos especial que permite que una variable sea un conjunto de constantes predefinidas, lo que hace que el código sea más legible y fácil de mantener. Los Enums se suelen utilizar para representar una colección de constantes relacionadas, como los días de la semana, los meses del año o los estados de un proceso.

Utilización

Los Enums permiten definir una colección de constantes de forma segura. Pueden incluir métodos y campos, y pueden implementar interfaces.

Syntax

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

Ejemplos

Ejemplo 1: Enum básico

enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}

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

En este ejemplo, se define un enum Day con constantes que representan los días de la semana. A la variable today se le asigna el valor Day.MONDAY, y el programa imprime el día actual.

Ejemplo 2: Enum con métodos

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 class EnumWithMethodExample {
    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 representación de cadena del tamaño. A la variable size se le asigna Size.MEDIUM, y el programa imprime la descripción del tamaño correspondiente.

Ejemplo 3: Enum con campos y constructor

enum Planet {
    MERCURY(3.303e+23, 2.4397e6),
    VENUS(4.869e+24, 6.0518e6),
    EARTH(5.976e+24, 6.37814e6);

    private final double mass;   // in kilograms
    private final double radius; // in meters

    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

    public double getMass() {
        return mass;
    }

    public double getRadius() {
        return radius;
    }
}

public class EnumWithFieldsExample {
    public static void main(String[] args) {
        for (Planet planet : Planet.values()) {
            System.out.printf("Planet: %s, Mass: %f, Radius: %f%n", planet, planet.getMass(), planet.getRadius());
        }
    }
}

En este ejemplo, el enum Planet tiene los campos mass y radius, un constructor para inicializar estos campos y métodos getter para acceder a ellos. El programa recorre todas las constantes enum e imprime sus detalles.

Consejos y buenas prácticas

  • Uso para Constantes: Utiliza enums para definir un conjunto fijo de constantes, mejorando la legibilidad y mantenibilidad del código.
  • Tipo Seguridad: Los Enums proporcionan seguridad de tipo en comparación con las definiciones constantes tradicionales que utilizan final static.
  • Declaraciones de cambio: Los Enums funcionan perfectamente con las sentencias switch, lo que hace que el código sea más limpio.
    switch (size) {
        case SMALL:
            // Handle small size
            break;
        case MEDIUM:
            // Handle medium size
            break;
        case LARGE:
            // Handle large size
            break;
    }
  • Implementar interfaces: Los Enums pueden implementar interfaces, lo que permite un código más flexible y reutilizable.
    interface Describable {
        String getDescription();
    }
    
    enum Color implements Describable {
        RED, GREEN, BLUE;
    
        @Override
        public String getDescription() {
            return "Color: " + this.name();
        }
    }
  • Evita el uso excesivo: Aunque los enums son potentes, evita utilizarlos en exceso para simples constantes. Utilízalos cuando haya un conjunto claro de constantes relacionadas.

Aprende Java Essentials

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