Can enum have attributes?

An enum can, just like a class , have attributes and methods . The only difference is that enum constants are public , static and final (unchangeable – cannot be overridden). An enum cannot be used to create objects, and it cannot extend other classes (but it can implement interfaces).

Read more

Should enums be string or int?

Therefore, go for the meaning : the Strings are more meaningful than numbers, so use the String . Show activity on this post. Both have advantages. If you store them by their Integer value, then you must be careful editing your enumeration later on in your project.

Read more