public class EnumTest { public static void main(String args[]) { for (myEnum string : myEnum.values()) { System.out.println(string+ " = " + string.getValue()); } } enum myEnum { a(1) { @Override public int getValue() { return super.value + ab.value; } }, b(2) { @Override public int getValue() { return super.value * c.value; } }, c(3) { @Override public int getValue() { return c.value * d.value; } }, d(4) { @Override public int getValue() { return c.getValue() * c.value; } }, ab(5, 6) { @Override public int getValue() { return a.value + b.getValue(); } }; myEnum(int value) { this.value = value; } myEnum(int value, int value2) { this.value = value; this.value2 = value2; } private int value2 = 0; private int value = 0; public int getValue() { return value + value2; } } }