[Java 5.0] tipos enumerados
Artículo por Club Developers · 18 mayo 2006
2435 vistas
Definición:
Un enum representa un tipo enumerado, es decir, un tipo que sólo acepta un número finito de elementos.
Uso:
En su forma más básica, un enum contiene simplemente la lista de los posibles valores que puede tener.
Veamos un ejemplo de enum que contiene las estaciones:
No obstante, una enumeración es como una clase Java, es decir, acepta propiedades, métodos y constructores.
En el ejemplo anterior, podrÃamos completar la enum con los nombres de las estaciones en español:
Los constructores de los enum no aceptan modificadores de accesivilidad (public, protected,...) devido a que sólo se usan para inicializar los diferentes valores de la enumeración. Por lo tanto, el siguiente código es incorrecto:
Además, cada enum tiene dos métodos estáticos implÃcitos que permiten acceder a los diferentes valores:
Los diferentes valores del enum son constantes estáticas y públicas y son accesibles directamente como los campos public static (por ejemplo con Season.winter).
Por lo tanto, los enums puedes ser usados directamente en un switch:
Un enum representa un tipo enumerado, es decir, un tipo que sólo acepta un número finito de elementos.
Uso:
En su forma más básica, un enum contiene simplemente la lista de los posibles valores que puede tener.
Veamos un ejemplo de enum que contiene las estaciones:
java
public enum Season { Â spring, summer, autumn, winter; }
No obstante, una enumeración es como una clase Java, es decir, acepta propiedades, métodos y constructores.
En el ejemplo anterior, podrÃamos completar la enum con los nombres de las estaciones en español:
java
Los constructores de los enum no aceptan modificadores de accesivilidad (public, protected,...) devido a que sólo se usan para inicializar los diferentes valores de la enumeración. Por lo tanto, el siguiente código es incorrecto:
java
Season s = new Season ("Invierno");
Además, cada enum tiene dos métodos estáticos implÃcitos que permiten acceder a los diferentes valores:
- Season.values(): devuelve una tabla de Season con todos los valores posibles
- Season.valueOf(String): devuelve la Season del nombre pasado por parámetro (por ejemplo, Season.valueOf("spring") devolverá Season.spring).
Los diferentes valores del enum son constantes estáticas y públicas y son accesibles directamente como los campos public static (por ejemplo con Season.winter).
Por lo tanto, los enums puedes ser usados directamente en un switch:
java
public void metodo (Season season) { Â switch (season) { Â Â Â case spring: Â Â Â Â break; Â Â Â case summer: Â Â Â Â break; Â Â Â case automn: Â Â Â Â break; Â Â Â case winter: Â Â Â Â break; Â } }