Java: acceso a las constantes en una enumeración (enumeración)
leyendo el libro SCJP, he encontrado algo como esto en el capítulo 1 "autocomprobación":
enum Animals {
DOG("woof"), CAT("meow"), FISH("burble");
String sound;
Animals(String s) { sound = s; }
}
class TestEnum {
static Animals a;
public static void main(String[] args) {
System.out.println(a.DOG.sound + " " + a.FISH.sound);
// the following line is from me
System.out.println(Animals.DOG.sound + " " + Animals.FISH.sound);
}
}
Nota: el código compila bien. Lo que no entiendo es por qué podemos acceder a las constantes DOG, CAT o FISH desde la variablea
. Pensé (y también está escrito en el libro) que las constantes DOG, FISH, CAT son implementadas de manera similar apublic static final Animals DOG = new Animals(1);
Entonces, si realmente son estáticos, ¿por qué podemos acceder a ellos desdea
? La última línea es la forma en que estoy familiarizado.