Enumerações Java
Enums
An enum
é uma "classe" especial que representa um grupo de
constantes (variáveis imutáveis, como final
variáveis).
Para criar um enum
, use a palavra- enum
chave (em vez de classe ou interface) e separe as constantes com uma vírgula. Observe que eles devem estar em letras maiúsculas:
Exemplo
enum Level {
LOW,
MEDIUM,
HIGH
}
Você pode acessar enum
constantes com a sintaxe de ponto :
Level myVar = Level.MEDIUM;
Enum é a abreviação de "enumerações", que significa "listado especificamente".
Enum dentro de uma classe
Você também pode ter um enum
dentro de uma classe:
Exemplo
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
A saída será:
MEDIUM
Enum em uma instrução de switch
Enums são frequentemente usados em switch
instruções para verificar os valores correspondentes:
Exemplo
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;
}
}
}
A saída será:
Medium level
Percorrer um Enum
O tipo enum tem um values()
método, que retorna uma matriz de todas as constantes enum. Este método é útil quando você deseja percorrer as constantes de um enum:
Exemplo
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
A saída será:
LOW
MEDIUM
HIGH
Diferença entre Enums e Classes
Um enum
pode, assim como um class
, ter atributos e métodos. A única diferença é que as constantes enum são public
, static
e final
(imutáveis - não podem ser substituídas).
An enum
não pode ser usado para criar objetos e não pode estender outras classes (mas pode implementar interfaces).
Por que e quando usar enums?
Use enums quando tiver valores que você sabe que não vão mudar, como dias do mês, dias, cores, baralho de cartas, etc.