If you have an enum such as
enum Coffee {
BIG,
SMALL
}
and a class that has an instance variable like this of the enum:
public class MyClass {
private Coffee coffee;
// Constructor etc.
}
Why is it possible in the constructor to say e.g. coffee.BIG?
I don’t understand that you can use the reference? Is enum as instance variables initialized to something other than null? It is the self test question #4 in the SCJP book in the first chapter. I tried to shorten the code and question.
In
BIG or SMALL are
public static finalfields of Coffee class, and like all static fields they can be accessed by class name likeor by reference of same type as class, like
But lets remember that we should avoid accessing static members via references. This creates confusion since we are not really accessing members of instance but members of class (so for instance there is no polymorphic behaviour).