E aí, pessoal. Tranquilo? Para quem não tem conhecimento ainda, o Enum é uma abreviação de “enumeração”, que é um tipo de dados em linguagens de programação que permite definir um conjunto fixo de valores nomeados. Em Java, os enums são uma classe especial que contém um conjunto fixo de constantes nomeadas. Eles são úteis para representar um conjunto de valores fixos e bem definidos em um programa, como os dias da semana, os meses do ano ou os códigos de erro.

Neste artigo, vamos explorar o uso de enums em Java, incluindo como definir, usar e manipular enums em seus programas. Vamos lá?

Definindo Enums em Java

Em Java, você pode definir um enum usando a palavra-chave “enum”, como se fosse uma classe porém criando um enum. A sintaxe básica para definir um enum é a seguinte:

enum NomeDoEnum { VALOR1, VALOR2, ... }

Os Enums devem ser criados seguinte a boa prática de todas as letras maiúsculas. Aqui está um exemplo simples de enum que define os dias da semana:

enum DiaDaSemana { DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO }

Agora, você pode usar esse enum para representar os dias da semana em seu programa. Por exemplo, para imprimir o dia da semana atual, você poderia usar o seguinte código:

DiaDaSemana hoje = DiaDaSemana.QUARTA; System.out.println("Hoje é " + hoje);

Isso irá imprimir “Hoje é QUARTA” no console.

Enums também podem ter campos e métodos personalizados. Por exemplo, você pode adicionar um campo para armazenar o número de dias úteis em cada semana e um método para retornar o número de dias úteis. Aqui está um exemplo:

enum DiaDaSemana {
    DOMINGO(0),
    SEGUNDA(1),
    TERCA(2),
    QUARTA(3),
    QUINTA(4),
    SEXTA(5),
    SABADO(6);

private final int valor;
private final int diasUteis = 5;

DiaDaSemana(int valor) {
    this.valor = valor;
}

public int getValor() {
    return valor;
}

public int getDiasUteis() {
    return diasUteis;
}
}

Neste exemplo, cada valor de enum tem um valor numérico associado a ele (0 para DOMINGO, 1 para SEGUNDA, etc.), bem como um campo “diasUteis” que é definido como 5 (o número padrão de dias úteis em uma semana). O construtor do enum é usado para definir o valor numérico associado a cada valor de enum. O método “getValor()” retorna o valor numérico associado a cada valor de enum e o método “getDiasUteis()” retorna o número de dias úteis em uma semana.

Segue um exemplo:

    Scanner scanner = new Scanner([System.in](<http://system.in/>));   
    System.out.println("Digite o dia da semana (em letras minúsculas): ");
    String input = scanner.nextLine();

    try {
        DiaDaSemana dia = DiaDaSemana.valueOf(input.toUpperCase());

        switch (dia) {
            case SEGUNDA:
            case TERCA:
            case QUARTA:
            case QUINTA:
            case SEXTA:
                System.out.println("Hoje é dia de trabalho!");
                break;
            case SABADO:
            case DOMINGO:
                System.out.println("Hoje é final de semana!");
                break;
        }
    } catch (IllegalArgumentException e) {
        System.out.println("Dia da semana inválido!");
    }

    scanner.close();

Usando Enums em Java

Enums são usados em Java para representar um conjunto de valores fixos e bem definidos. Eles são especialmente úteis em situações em que você precisa limitar o conjunto de valores possíveis para um determinado tipo de dados. Por exemplo, você pode usar um enum para representar o tipo de animal em um programa:

enum TipoDeAnimal { GATO, CACHORRO, PASSARO, PEIXE }

Você pode usar esse enum para restringir o conjunto de valores possíveis para o tipo de animal em seu programa. Por exemplo, se você estiver escrevendo um programa que permita ao usuário escolher um animal de estimação, você pode usar o enum para fornecer uma lista pré-definida de opções.

public class AnimalDeEstimacao {
private String nome;
private TipoDeAnimal tipo;

public AnimalDeEstimacao(String nome, TipoDeAnimal tipo) {
    this.nome = nome;
    this.tipo = tipo;
}

public String getNome() {
    return nome;
}

public TipoDeAnimal getTipo() {
    return tipo;
}
}

Neste exemplo, a classe AnimalDeEstimacao tem um campo “tipo” que é do tipo TipoDeAnimal. Isso significa que você só pode definir o tipo de animal como um dos valores definidos no enum TipoDeAnimal. Isso ajuda a garantir que você não acabe com um valor inválido para o tipo de animal.

Exemplo de usos:

// Cria uma instância do Enum TipoDeAnimal TipoDeAnimal cachorro = TipoDeAnimal.CACHORRO;

// Cria um objeto AnimalDeEstimacao usando o Enum criado AnimalDeEstimacao meuPet = new AnimalDeEstimacao("Rex", cachorro);

// Obtém o nome e o tipo do animal de estimação String nome = meuPet.getNome(); // nome é "Rex" TipoDeAnimal tipo = meuPet.getTipo(); // tipo é TipoDeAnimal.CACHORRO

Outro exemplo:

// Verifica o tipo de animal usando um if if (meuPet.getTipo() == TipoDeAnimal.GATO) { System.out.println("Meu pet é um gato!"); } else if (meuPet.getTipo() == TipoDeAnimal.CACHORRO) { System.out.println("Meu pet é um cachorro!"); } else { System.out.println("Meu pet é outro tipo de animal."); }

// Verifica o tipo de animal usando um switch switch (meuPet.getTipo()) { case GATO: System.out.println("Meu pet é um gato!"); break; case CACHORRO: System.out.println("Meu pet é um cachorro!"); break; default: System.out.println("Meu pet é outro tipo de animal."); break; }

Manipulando Enums em Java

Existem várias maneiras de manipular enums em Java. Aqui estão algumas das coisas que você pode fazer com enums:

  • Acessar valores de enum: você pode acessar os valores de enum usando a sintaxe “NomeDoEnum.VALOR”. Por exemplo, para acessar o valor “SEGUNDA” do enum DiaDaSemana, você pode usar o seguinte código: DiaDaSemana.SEGUNDA.
  • Comparando valores de enum: você pode comparar os valores de enum usando o operador “==” ou o método “equals()”. Por exemplo, para verificar se o valor de um objeto DiaDaSemana é igual a SEGUNDA, você pode usar o seguinte código:

DiaDaSemana hoje = DiaDaSemana.QUARTA; if (hoje == DiaDaSemana.SEGUNDA) { System.out.println("Hoje é SEGUNDA"); } else { System.out.println("Hoje não é SEGUNDA"); }

Obtendo todos os valores de um enum: você pode obter todos os valores de um enum usando o método “values()”. Por exemplo, para imprimir todos os valores do enum DiaDaSemana, você pode usar o seguinte código:

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

Obtendo o número de valores em um enum: você pode obter o número de valores em um enum usando o método “values().length”. Por exemplo, para imprimir o número de valores no enum DiaDaSemana, você pode usar o seguinte código:

System.out.println("Existem " + DiaDaSemana.values().length + " valores em DiaDaSemana");

Conclusão

Em Java, enums são uma maneira poderosa de representar um conjunto fixo de valores nomeados em seu programa. Eles ajudam a garantir que você não acabe com valores inválidos e tornam seu código mais fácil de entender e manter. Espero que este artigo tenha ajudado você a entender melhor como trabalhar com enums em Java. Nos vemos na próxima e um grande abraço!