O que são enumerations (enums) e como usá-las?

Enums em Java representam um conjunto fixo de valores constantes, sendo utilizados para definir categorias e estados de forma segura.

O que são enumerations (enums) e como usá-las?

Em Java, enums (enumerations) são um tipo especial de classe que representa um conjunto fixo de constantes nomeadas. Eles são ideais para representar estados, tipos ou categorias.

1. Definição básica de um enum

public enum DiaSemana {
    SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO, DOMINGO;
}

Os valores de um enum são constantes e, por convenção, são escritos em letras maiúsculas.

2. Utilizando enums em Java

public class TesteEnum {
    public static void main(String[] args) {
        DiaSemana hoje = DiaSemana.QUARTA;
        System.out.println("Hoje é: " + hoje);
    }
}

Saída:

Hoje é: QUARTA

3. Adicionando atributos e métodos em um enum

Enums podem conter atributos, métodos e construtores, tornando-se mais flexíveis.

public enum Nivel {
    BAIXO(1), MEDIO(2), ALTO(3);

    private int codigo;

    Nivel(int codigo) {
        this.codigo = codigo;
    }

    public int getCodigo() {
        return codigo;
    }
}

E podemos usá-lo assim:

public class TesteNivel {
    public static void main(String[] args) {
        Nivel n = Nivel.ALTO;
        System.out.println("Nível: " + n + ", Código: " + n.getCodigo());
    }
}

Saída:

Nível: ALTO, Código: 3

4. Iterando sobre um enum

Podemos percorrer os valores de um enum usando values():

for (DiaSemana dia : DiaSemana.values()) {
    System.out.println(dia);
}

5. Comparando enums

Enums podem ser comparados com == ou com equals():

if (hoje == DiaSemana.QUARTA) {
    System.out.println("Hoje é quarta-feira!");
}

Quando usar enums?

  • Quando temos um conjunto fixo de valores conhecidos.
  • Para representar estados de um objeto (ATIVO, INATIVO, PENDENTE).
  • Para substituir constantes (public static final), tornando o código mais legível.

Conclusão

Enums são poderosos e úteis para representar conjuntos fixos de valores de maneira segura e organizada. Eles ajudam a evitar erros ao restringir o uso de valores inválidos e melhoram a clareza do código.

O uso de enums é uma prática comum para organizar códigos mais limpos e seguros. Ao invés de definir constantes numéricas para representar estados, o uso de enums torna o código mais intuitivo e evita valores inválidos. Em frameworks como Spring e Hibernate, enums são amplamente utilizados para representar configurações, status de processos e categorias de entidades no banco de dados. Além disso, eles garantem que apenas valores permitidos sejam utilizados, evitando erros comuns em comparação com o uso de números inteiros ou strings.

Algumas aplicações:

  • Definição de estados de um objeto (ATIVO, INATIVO, PENDENTE)
  • Representação de dias da semana, meses do ano ou níveis de acesso
  • Uso em sistemas que requerem um conjunto fixo de valores
  • Melhoria da legibilidade e manutenção do código

Dicas para quem está começando

  • Sempre escreva os nomes dos enums em letras maiúsculas
  • Use values() para iterar sobre os valores do enum
  • Se precisar de um código associado ao enum, crie um atributo e um método get()
  • Enums são comparados corretamente usando ==, pois são instâncias únicas
  • Evite armazenar enums no banco como String, prefira armazenar seus códigos

Contribuições de Eduardo Martins

Compartilhe este tutorial: O que são enumerations enums e como usá-las

Compartilhe este tutorial

Continue aprendendo:

Como gerar números aleatórios em Java

A geração de números aleatórios em Java pode ser feita com Math.random(), a classe Random e SecureRandom, cada uma com aplicações específicas.

Tutorial anterior

Como lidar com números decimais em Java sem perder precisão

O Java oferece diferentes tipos para lidar com números decimais, sendo BigDecimal a melhor opção para cálculos precisos.

Próximo tutorial