This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
If you strictly want a variable to assume a value within a specific set of constants, you should be better off with an enum.
In the above example, 'Color c' can take only four values(e.g. Color.RED, Color.YELLOW, Color.BLUE or Color.GREEN), whereas, in case of 'int color', nothing stops me from assigning any value outside the four static final int constants.