enum Animals{
DOG(\"woof\"),
CAT(\"Meow\"),
FISH(\"Burble\");
String sound;
Animals(String s) {
sound = s;
}
}
public class TestEnu
Yes, enums are effectively static.
Enums are implicitly public static final.
You can refer to a.DOG because you may access static members through instance references, even when null: static resolution uses the reference type, not the instance.
I wouldn't; it's misleading: convention favors type (not instance) static references.
See JLS 6.5.6.2 regarding class variable via instances. See JLS 15.11 for why it still works with a null. Nutshell: it's the reference type, not the instance, through which statics are resolved.
JSE 6
JSE 7
JSE 8