У них есть много всего, помимо того, что уже сказали другие парни.
Позвольте мне представить еще одно использование, которое вы можете найти для них. Я использую их как архетипы объектов. Таким образом, вместо отправки целого объекта по сети, я просто посылаю идентификатор архетипа. Ниже я привожу пример из простой игры, которую я пишу для забавы и практики.
public enum SimpleUnits
{
BROTHERHOOD_ELITE_TROOPER,
CAPITOL_FREE_MARINE,
IMPERIAL_BLOOD_BERET;
public static SimpleUnit getUnit(SimpleUnits unit)
{
SimpleUnit result = null;
// new SimpleUnit(enumeName, hpMax, speed, CC, MW, PW, LD, ST, MV, AC, W, A, COST);
switch(unit)
{
case BROTHERHOOD_ELITE_TROOPER:
result = new SimpleUnit(BROTHERHOOD_ELITE_TROOPER.name(), 5, 0.15, 12, 12, 12, 12, 3,
5, 3, 2, 1, 100, "images/units/eliteTrooper.png");
break;
case CAPITOL_FREE_MARINE:
result = new SimpleUnit(CAPITOL_FREE_MARINE.name(), 5, 0.15, 12, 12, 12, 12, 3,
5, 3, 2, 1, 100, "images/units/freeMarine.png");
break;
case IMPERIAL_BLOOD_BERET:
result = new SimpleUnit(IMPERIAL_BLOOD_BERET.name(), 5, 0.15, 12, 12, 12, 12, 3,
5, 3, 2, 1, 100, "images/units/bloodBeret.png");
break;
}
return result;
}
public SimpleUnit getUnit()
{
return SimpleUnits.getUnit(this);
}
public static SimpleUnit getUnit(String enumeName)
{
return SimpleUnits.valueOf(enumeName).getUnit();
}
}
Надеюсь, вы найдете это полезным.