How to Add Method to Enum in Java: Simple Guide
In Java, you can add methods to an
enum by defining the method inside the enum body just like in a class. Each enum constant can then use or override this method if needed.Syntax
An enum in Java can have methods defined inside its body. You write the method like in a normal class, after listing the enum constants.
enum EnumName { CONSTANTS; method() { ... } }- Methods can be
public,private, orabstract. - You can override methods for each constant by adding a body after the constant.
java
public enum Day { MONDAY, TUESDAY, WEDNESDAY; public String greet() { return "Hello, it's " + this.name(); } }
Example
This example shows an enum Day with a method isWeekend() that returns true for weekend days and false otherwise. It also demonstrates overriding the method for specific constants.
java
public class EnumMethodExample { public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY { @Override public boolean isWeekend() { return true; } }, SUNDAY { @Override public boolean isWeekend() { return true; } }; public boolean isWeekend() { return false; } } public static void main(String[] args) { for (Day day : Day.values()) { System.out.println(day + " is weekend? " + day.isWeekend()); } } }
Output
MONDAY is weekend? false
TUESDAY is weekend? false
WEDNESDAY is weekend? false
THURSDAY is weekend? false
FRIDAY is weekend? false
SATURDAY is weekend? true
SUNDAY is weekend? true
Common Pitfalls
Common mistakes when adding methods to enums include:
- Forgetting the semicolon
;after the enum constants when methods follow. - Trying to add abstract methods without overriding them in all constants.
- Not overriding methods in constants when required, causing compilation errors.
Always place a semicolon after the last enum constant if you add methods or fields.
java
public enum Color { RED, GREEN, BLUE // Missing semicolon here public String getHex() { return "#000000"; } } // Corrected version: public enum Color { RED, GREEN, BLUE; public String getHex() { return "#000000"; } }
Quick Reference
| Concept | Description |
|---|---|
| Enum constants | List at the top, separated by commas, end with semicolon if methods follow |
| Method inside enum | Define like a normal class method after constants |
| Override per constant | Add a body after constant and override methods |
| Abstract methods | Declare abstract method and override in all constants |
| Access enum name | Use this.name() to get constant name |
Key Takeaways
Add methods inside enum body after constants with a semicolon separator.
Override methods per constant by adding a body after the constant name.
Always end enum constants with a semicolon if methods or fields follow.
Abstract methods in enums must be overridden by all constants.
Use
this.name() to get the enum constant's name inside methods.