Výčty Java
Výčty
An enum
je speciální "třída", která představuje skupinu
konstant (neměnných proměnných, jako jsou final
proměnné).
Chcete-li vytvořit enum
, použijte enum
klíčové slovo (místo třídy nebo rozhraní) a oddělte konstanty čárkou. Všimněte si, že by měly být velkými písmeny:
Příklad
enum Level {
LOW,
MEDIUM,
HIGH
}
enum
Ke konstantám můžete přistupovat pomocí syntaxe tečky :
Level myVar = Level.MEDIUM;
Enum je zkratka pro „enumerations“, což znamená „konkrétně uvedené“.
Enum uvnitř třídy
Můžete mít také enum
vnitřní třídu:
Příklad
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
Výstupem bude:
MEDIUM
Enum v příkazu Switch
Výčty se často používají v switch
příkazech ke kontrole odpovídajících hodnot:
Příklad
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
Výstupem bude:
Medium level
Smyčka přes Enum
Typ enum má values()
metodu, která vrací pole všech konstant enum. Tato metoda je užitečná, když chcete procházet konstanty výčtu:
Příklad
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
Výstupem bude:
LOW
MEDIUM
HIGH
Rozdíl mezi výčty a třídami
Plechovka enum
, stejně jako class
, má atributy a metody. Jediný rozdíl je v tom, že výčtové konstanty jsou public
, static
a final
(nezměnitelné - nelze je přepsat).
An enum
nelze použít k vytváření objektů a nemůže rozšířit další třídy (ale může implementovat rozhraní).
Proč a kdy používat výčty?
Výčty použijte, pokud máte hodnoty, o kterých víte, že se nezmění, jako jsou měsíční dny, dny, barvy, balíček karet atd.