Re: Declaring members for Interfaces
Todd wrote:
How do I get the value of mass without a getter from any
of the enumerated items from outside of the enumeration?
I took a walk, but apparently am not seeing the "magic"
you claim. Help me out?
What you quoted is not really a normal use of enums. It's a fancy
example intended to show the ability to customize the use of enums.
What is normal is
enum Planets {EARTH, MARS, VENUS};
and then you have several methods declared for you.
Planets p = Enum.valueOf( Planets, "MARS" );
int i = p.ordinal();
String s = p.toString();
boolean b = p.equals( Enum.valueOf( Planets, "MARS" );
etc.
Your original post said
"With the enum declaration of a constant, you must supply a getter
method or make the field that holds the value of the constant
public (violating encapsulation)."
Well that's not really true in the example I gave, is it? I did not need
to declare any getters and setters. And if I do declare getters and
setters, it's no different from a public class, except with enums I also
get the functionality above, and a bit more besides (EnumMap, EnumSet).
And your other comment about "namespace pollution" is equally off the
beam. I just don't see how it applies to enums at all.