List of points:
- The enum in JAVA is in fact a special class
- Each constant in the enum is an instance. The instance is implictly the 'static' and 'public'
- The (implicit) constructor of the enum is private and so user can never construct a new enum constant after it's defined.
- You can add more methods to the enum but the constants shall always be defined at the beginning.
- Every enum implicitly contains below two methods
- valueOf(String) return the enum instance by its name string.
- values() returns the array of enum instances
- The enum can be sophiscated coded and designed but usually it's simple enough. If you design a sophiscated enum, it may mean 'enum' is not suitable to your needs.
- Even though it's the class/instance, it can be directly used in the switch case context.