В Java, в отличие от многих других языков программирования, в перечисления можно добавлять методы, переменные и другие члены. Этим перечисления очень напоминают на классы.
Вот пример объявления такого перечисления:
public enum Suits {
Spades,
Clubs,
Diamonds,
Hearts;
static public boolean isRed(Suits suit){
if(suit == Suits.Diamonds || suit == Suits.Hearts){
return true;
}
else{
return false;
}
}
}
Как вы видите тут мы, кроме собственно объявления элементов перечисления (названия карточных мастей), добавили в перечисление статический метод, выясняющий, красная данная масть или нет.
А вот так можно наше перечисление использовать:
public class Test {
public static void main(String[] args){
Suits suit = Suits.Diamonds;
if(Suits.isRed(suit)){
System.out.print("Suit is red.");
}
else{
System.out.print("Suit is black.");
}
}
}
Указанный фрагмент выведен, разумеется, текст "Suit is red.".