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