Enumerações Java
Enums Java
Neste tutorial, aprenderemos sobre enums em Java. Aprenderemos a criar e usar enums e classes enum com a ajuda de exemplos.
Em Java, um enum (abreviação de enumeration) é um tipo que possui um conjunto fixo de valores constantes. Usamos o enum
palavra-chave para declarar enums. Por exemplo,
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
Aqui, criamos um enum chamado Size . Ele contém valores fixos SMALL , MÉDIO , GRANDE , e EXTRALARGE .
Esses valores dentro das chaves são chamados de constantes enum (valores).
Observação: As constantes enum geralmente são representadas em maiúsculas.
Exemplo 1:Java Enum
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Main {
public static void main(String[] args) {
System.out.println(Size.SMALL);
System.out.println(Size.MEDIUM);
}
}
Saída
SMALL MEDIUM
Como podemos ver no exemplo acima, usamos o nome enum para acessar os valores constantes.
Além disso, podemos criar variáveis do tipo enum. Por exemplo,
Size pizzaSize;
Aqui, pizzaSize é uma variável do Tamanho modelo. Só pode ser atribuído com 4 valores.
pizzaSize = Size.SMALL;
pizzaSize = Size.MEDIUM;
pizzaSize = Size.LARGE;
pizzaSize = Size.EXTRALARGE;
Exemplo 2:Java Enum com a instrução switch
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Test {
Size pizzaSize;
public Test(Size pizzaSize) {
this.pizzaSize = pizzaSize;
}
public void orderPizza() {
switch(pizzaSize) {
case SMALL:
System.out.println("I ordered a small size pizza.");
break;
case MEDIUM:
System.out.println("I ordered a medium size pizza.");
break;
default:
System.out.println("I don't know which one to order.");
break;
}
}
}
class Main {
public static void main(String[] args) {
Test t1 = new Test(Size.MEDIUM);
t1.orderPizza();
}
}
Saída
I ordered a medium size pizza.
No programa acima, criamos um tipo de enumeração Size . Em seguida, declaramos uma variável pizzaSize do Tamanho modelo.
Aqui, a variável pizzaSize só pode ser atribuído com 4 valores (SMALL , MÉDIO , GRANDE , EXTRALARGO ).
Observe a afirmação,
Test t1 = new Test(Size.MEDIUM);
Ele chamará o
Test()
construtor dentro do Test classe. Agora, a variável pizzaSize é atribuído com o MEDIUM constante. Com base no valor, um dos casos da instrução switch case é executado.
Classe de enumeração em Java
Em Java, os tipos enum são considerados um tipo especial de classe. Foi introduzido com o lançamento do Java 5.
Uma classe enum pode incluir métodos e campos como classes regulares.
enum Size {
constant1, constant2, …, constantN;
// methods and fields
}
Quando criamos uma classe enum, o compilador criará instâncias (objetos) de cada constante enum. Além disso, todas as constantes enum são sempre
public static final
por padrão. Exemplo 3:classe Java Enum
enum Size{
SMALL, MEDIUM, LARGE, EXTRALARGE;
public String getSize() {
// this will refer to the object SMALL
switch(this) {
case SMALL:
return "small";
case MEDIUM:
return "medium";
case LARGE:
return "large";
case EXTRALARGE:
return "extra large";
default:
return null;
}
}
public static void main(String[] args) {
// call getSize()
// using the object SMALL
System.out.println("The size of the pizza is " + Size.SMALL.getSize());
}
}
Saída
The size of the pizza is small
No exemplo acima, criamos uma classe enum Size . Tem quatro constantes SMALL , MÉDIO , GRANDE e EXTRALARGE .
Desde Tamanho é uma classe enum, o compilador cria automaticamente instâncias para cada constante enum.
Aqui dentro do
main()
método, usamos a instância SMALL para chamar o getSize()
método. Observação :como as classes regulares, uma classe enum também pode incluir construtores. Para saber mais sobre isso, visite Java enum constructor.
Métodos da classe Java Enum
Existem alguns métodos predefinidos em classes enum que estão prontamente disponíveis para uso.
1. Java Enum ordinal()
O
ordinal()
retorna a posição de uma constante enum. Por exemplo,
ordinal(SMALL)
// returns 0
2. Enum compareTo()
O
compareTo()
O método compara as constantes enum com base em seu valor ordinal. Por exemplo,
Size.SMALL.compareTo(Size.MEDIUM)
// returns ordinal(SMALL) - ordinal(MEDIUM)
3. Enum toString()
O
toString()
retorna a representação de string das constantes enum. Por exemplo,
SMALL.toString()
// returns "SMALL"
4. Nome da enumeração()
O
name()
retorna o nome definido de uma constante enum em forma de string. O valor retornado do name()
método é final
. Por exemplo,
name(SMALL)
// returns "SMALL"
5. Java Enum valueOf()
O
valueOf()
O método recebe uma string e retorna uma constante enum com o mesmo nome de string. Por exemplo,
Size.valueOf("SMALL")
// returns constant SMALL.
6. Valores de enumeração()
O
values()
O método retorna uma matriz do tipo enum contendo todas as constantes enum. Por exemplo,
Size[] enumArray = Size.value();
Por que Java Enums?
Em Java, enum foi introduzido para substituir o uso de constantes int .
Suponha que usamos uma coleção de
int
constantes.
class Size {
public final static int SMALL = 1;
public final static int MEDIUM = 2;
public final static int LARGE = 3;
public final static int EXTRALARGE = 4;
}
Aqui, o problema surge se imprimirmos as constantes. É porque apenas o número é impresso, o que pode não ser útil.
Então, em vez de usar constantes int, podemos simplesmente usar enums. Por exemplo,
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
Isso torna nosso código mais intuitivo.
Além disso, enum fornece segurança de tipo em tempo de compilação .
Se declararmos uma variável do Size modelo. Por exemplo,
Size size;
Aqui, é garantido que a variável conterá um dos quatro valores. Agora, se tentarmos passar valores diferentes desses quatro valores, o compilador gerará um erro.
Java