El otro día en el trabajo, se me ocurrió la idea de utilizar los enumerados para el uso de constantes. Pero la verdad es que a la hora de llevarlo a la practica, no salió muy bien la cosa. A continuación indico una breve descripción de que es lo que son y para que nos pueden ser útiles, que lo son.
Los enumerados son básicamente un conjunto de constantes, los cuales son declarados de forma parecida a una clase. Se introdujeron en Java a partir de la versión 1.5. y tienen mucho en común de otros tipos de lenguajes como C. Estas son algunas de sus principales características:
- Los enumerados son en realidad subclases de carácter 'final' de Enum.
- Debido a ello permiten la creación de métodos y hereda otros como: 'name', 'ordinal' o 'values'.
- Cuando creamos un enumerado, sus atributos son creados como 'final' y 'static' de forma implícita (de ahí que se suelan escribir en mayúsculas).
- Si no indicamos nada al imprimir por pantalla mostrará el mismo nombre de la variable. El mismo efecto que si usamos el método heredado 'name'.
- El método 'values' nos permite iterar sobre sus valores como si fuera un array.
public enum Color { NEGRO("BLACK"), BLANCO("WHITE"); private final String engColor; private Color(final String engColor) { this.engColor = engColor; } public String getEngColor() { return engColor; } }; public static void main(final String[] args) { for (Color color : Color.values()) { System.out.println(color); System.out.println(color.name()); System.out.println(color.ordinal()); System.out.println(color.getEngColor()); } }
- El orden en el que declaramos los atributos del enumerado, marca su 'orden natural'. Este es el que se muestra cuando se usa el método 'ordinal' y el que utiliza por ejemplo 'compareTo' para indicar su un enumerado es mayor a otro.
public static void main(final String[] args) { int mayor = Color.BLANCO.compareTo(Color.NEGRO); System.out.println(mayor); //imprime 1 }
- Podemos hacer uso de un enumerado dentro de un switch a modo de String (Algo que no permitía Java 5 y se soluciono en Java 7).
public static void main(final String[] args) { Color blanco = Color.BLANCO; switch (blanco) { case BLANCO: System.out.println("Es blanco"); break; case NEGRO: System.out.println("Es negro"); break; } }
No hay comentarios:
Publicar un comentario