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