Bóson Treinamentos em Ciência e Tecnologia

Como trabalhar com o tipo enum em Java (enumerações)

Como declarar e usar o tipo enum em Java

O tipo Enum em Java

O tipo especial enum define um conjunto de constantes, representadas por identificadores únicos – as enumerações. Os tipos enum, assim como as classes, são tipos de referência.

Criamos um tipo enum com a declaração enum, que consiste em uma lista de constantes de enumeração, separadas por vírgulas. Opcionalmente, é possível incluir na declaração outros componentes comuns às classes, como construtores, campos e métodos. Neste artigo vamos ver como criar enumerações simples, e na próxima lição também abordaremos esses elementos opcionais.

Quando declaramos uma enumeração em Java, uma classe enum é criada, com as seguintes restrições:

Boa prática ao declarar enumerações: usar apenas letras maiúsculas nos nomes das constantes de enumeração, para diferenciá-las de variáveis.

Como criar uma enum em Java

Usamos a palavra-chave enum para declarar uma enumeração em Java.

Sintaxe:

modificador enum nomeEnum { const1, const2, …, constN };

Exemplo

Vamos criar uma enumeração que conterá constantes representando os meses do ano:

private enum Mes { JANEIRO, FEVEREIRO, MARÇO, ABRIL, MAIO, JUNHO, JULHO, AGOSTO, SETEMBRO, OUTUBRO, NOVEMBRO, DEZEMBRO };

Como usar uma enum

Após declarar uma enumeração, podemos utilizá-la da mesma maneira que usamos qualquer outro tipo de dado.

Por exemplo, podemos acessar seus membros usando o operador ponto .

Exemplo:

System.out.println(Mes.JANEIRO.toString());

Métodos em enums

Todas as enumerações estendem implicitamente a classe java.lang.Enum. Vários métodos estão disponíveis para as enums, tais como:

Exibir os elementos da enum

Podemos iterar por todos os elementos de uma enumeração usando o método values():

Exemplo:

for (Mes m : Mes.values()) {
  System.out.printf("O mês de %s tem %d dias%n", m, m.diasMes());
}

Exibir os n primeiros elementos da enum

Podemos iterar por um grupo de elementos de uma enumeração usando o método range() da classe Enumset – Enumset.range(de, até):

Exemplo:

for (Mes m : Mes.Enumset.range(Mes.Janeiro,Mes.Junho)) {
  System.out.printf("O mês de %s tem %d dias%n", m, m.diasMes());
}

Criar um array a partir de uma Enumeração

Podemos criar um array contendo as constantes de uma enumeração usando o método values():

Exemplo:

// Criar o array a partir da enum Mes:
Mes vetor[] = Mes.values();

// Visualizar o item na posição 3 do array
System.out.println(vetor[3]);

// Iterar por todos os elementos do array
for (Mes i : vetor) {
 System.out.println(i);
}

Descobrir o número de índice de uma constante

Podemos descobrir o número de índice de uma constante da enum com o método ordinal():

Exemplo:

System.out.println(Mes.Maio.ordinal());

Exemplo Completo

Vejamos um exemplo completo de emprego de enums em Java. Criaremos uma enumeração em um arquivo próprio, como uma classe, e a utilizaremos no programa principal.

Arquivo 01: enum DiasSemana (DiasSemana.java):

package enums;
public enum DiasSemana {
  SEGUNDA,
  TERÇA,
  QUARTA,
  QUINTA,
  SEXTA,
  SÁBADO,
  DOMINGO
}

Arquivo 02: Programa principal (main):

package enums;
import java.util.Scanner;
public class EnumsJava {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    int dia = 0;
    String diaSemana;
    System.out.println("Entre com o código do dia da semana:");
    dia = entrada.nextInt();
    entrada.close();
    switch (dia) {
      case 1:
        diaSemana = DiasSemana.DOMINGO.toString();
        break;
      case 2:
        diaSemana = DiasSemana.SEGUNDA.toString();
        break;
      case 3:
        diaSemana = DiasSemana.TERÇA.toString();
        break;
      case 4:
        diaSemana = DiasSemana.QUARTA.toString();
        break;
      case 5:
        diaSemana = DiasSemana.QUINTA.toString();
        break;
      case 6:
        diaSemana = DiasSemana.SEXTA.toString();
        break;
      case 7:
        diaSemana = DiasSemana.SÁBADO.toString();
        break;
      default:
        diaSemana = "Dia inválido";
    }
    System.out.println("O dia da semana escolhido foi: " + diaSemana);
  }
}

Rodando a aplicação para testar:

Na próxima lição veremos como trabalhar com construtores, campos e métodos em enums Java. Até!

 

Sair da versão mobile