lunes, 19 de mayo de 2008

Enum

Un tipo enum es un tipo cuyos campos consisten en un conjunto fijo de constantes. Los ejemplos más comunes incluyen direcciones (valores de Norte, Sur, Este y Oeste) y los días de la semana.

Debido a que son constantes, los nombres de un tipo enum de los campos son en mayúsculas.

Ejemplo:
public class Card {
public enum Rank { DEUCE, THREE, FOUR, FIVE, SIX,
SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE }

public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES }

private final Rank rank;
private final Suit suit;
private Card(Rank rank, Suit suit) {
this.rank = rank;
this.suit = suit;
}

public Rank rank() { return rank; }
public Suit suit() { return suit; }
public String toString() { return rank + " of " + suit; }

private static final List protoDeck = new ArrayList();

// Initialize prototype deck
static {
for (Suit suit : Suit.values())
for (Rank rank : Rank.values())
protoDeck.add(new Card(rank, suit));
}

public static ArrayList newDeck() {
return new ArrayList(protoDeck); // Return copy of prototype deck
}
}