Article image

GC

Gustavo Camilo09/02/2024 17:25
Compartilhe

Funções em Java: Como utilizar o Enum

  • #Java

Como usar Enum em Java

Em muitos cenários de desenvolvimento de software, nos deparamos com a necessidade de representar um conjunto fixo de valores relacionados. Seja para definir os dias da semana, meses do ano ou status de uma entidade, a linguagem de programação Java oferece uma ferramenta para lidar com essas situações, a classe "enum". Ao contrário de simples loops ou estruturas de repetição, o "enum" proporciona uma maneira elegante e robusta de representar conjuntos de constantes, adicionando clareza e legibilidade do código.

Nesse artigo abordaremos a importância e os benefícios do uso da classe "enum".

Declarando Enums

Enums são uma extensão poderosa do tipo de dado primitivo "int", permitindo que você crie tipos próprios e atribua valores específicos a esses tipos. Aqui está a sintaxe básica para declara-lo:

public enum Dificuldade {
FACIL,
MEDIO,
DIFICIL
}

Neste exemplo simples, criamos um "enum" chamado "Dificuldade", que representa a dificuldade de um jogo. Cada constante dentro do "enum" (FACIL, MEDIO e DIFICIL) é uma instância única desse tipo de "enum".

Percorrendo Enum

Para percorrer um "enum" e obter os valores que estão contidos neles você pode utilizar o loop "for-each", no qual "d" será um elemento do tipo "Dificuldade", e receberá cada valor declarado no "enum", um exemplo:

public class Main {
  public static void main(String[] args) {
      for(Dificuldade d : Dificuldade.values()) {
          System.out.printf( " %s%n", d);
          }
      }
  }
}

Veja a saída abaixo:

Facil
Medio
Dificil

Utilizando Enum em um classe

Agora que nosso "enum" "Dificuldade foi criado podemos utiliza-lo em uma classe, no exemplo abaixo utilizamos um "switch case" para dizer qual dificuldade foi escolhida.

public enum Dificuldade {
FACIL,
MEDIO,
DIFICIL
}

public class Main {
public static void main(String[] args) {
  Dificuldade nivel = Dificuldade.DIFICIL;

  switch (nivel) {
    case FACIL:
      System.out.println("Nível Fácil);
      break;
    case MEDIO:
      System.out.println("Nível Médio);
      break;
    case DIFICIL:
      System.out.println("Nível Difícil);
      break;
    default:
      System.out.println("Nível não reconhecido.");
  }
}
}

veja a saída abaixo

Nível Médio

Métodos, Construtores em "Enum"

Além de representar conjuntos fixos de valores, os enums em Java podem ser enriquecidos com métodos e construtores, proporcionando uma flexibilidade adicional no seu uso. Vamos explorar como você pode aprimorar sua enumeração "Dificuldade" com métodos e construtores.

public enum Dificuldade {
FACIL("Fácil - Para iniciantes", 20),
MEDIO("Médio - Desafio equilibrado", 50),
DIFICIL("Difícil - Apenas para os corajosos", 100);


private final String descricao;
private final int valor;


Dificuldade(String descricao, int valor) {
  this.descricao = descricao;
  this.valor = valor;
}


public String obterDescricao() {
  return descricao;
}


public int getValor() {
  return valor;
}
}

Agora, cada constante da enumeração "Dificuldade" possui um método obterDescricao que retorna a descrição associada a ela. Além disso, adicionamos um método getValor para obter o valor numérico associado a cada dificuldade.

Também adicionamos um construtor personalizados, permitindo inicializar cada constante com valores específicos. Neste exemplo, cada constante agora tem uma descrição e um valor associados. O construtor é chamado automaticamente para cada constante durante a inicialização da enumeração.

public class Main {
public static void main(String[] args) {
  for (Dificuldade d : Dificuldade.values()) {
    System.out.println("Dificuldade: " + d + ", Descrição: " +
d.obterDescricao() + ", Valor: " + d.getValor());
  }
}
}

Veja a saída abaixo

Dificuldade: FACIL, Descrição: Fácil - Para iniciantes, Valor: 20
Dificuldade: MEDIO, Descrição: Médio - Desafio equilibrado, Valor: 50
Dificuldade: DIFICIL, Descrição: Difícil - Apenas para os corajosos, Valor: 100

Concluindo

Em resumo, o uso de "enums" em Java oferece uma maneira eficaz de representar conjuntos fixos de valores relacionados, proporcionando clareza e legibilidade ao código. A declaração simples e a capacidade de atribuir valores específicos a cada constante tornam os "enums" uma escolha poderosa para modelar entidades com estados ou opções bem definidos.

Referências

DevMedia: https://www.devmedia.com.br/tipos-enum-no-java/25729

W3schools: https://www.w3schools.com/java/java_enums.asp

Baeldung: https://www.baeldung.com/a-guide-to-java-enums

Foto da Capa: https://getwallpapers.com/collection/java-programming-wallpaper

Compartilhe
Comentários (0)