title: Is replacing enum constructs with classes in Java still relevant?
body: <p>I am reading Effective Java written by Joshua Bloch published in 2008, and one tip is to replace enum constructs with classes.  Here's the example shown from the book.</p>
  
  <pre><code>public class Suit {
      private final String name;
      public Suit(String name) { this.name = name; }
      public String toString() { return name; }
      public static final Suit CLUBS = new Suit("clubs");
      public static final Suit DIAMONDS = new Suit("diamonds");
      public static final Suit HEARTS = new Suit("hearts");
      public static final Suit SPADES = new Suit("spades");
  }
  </code></pre>
  
  <p>My question is since Java now supports enum type, is it still a good idea to use the approach above?  Here's example of Java enum type.</p>
  
  <pre><code>public enum Day {
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
      THURSDAY, FRIDAY, SATURDAY 
  }
  </code></pre>