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