Tipo enum em Java e classe de teste

Tipo enum em Java e classe de teste

Como vimos em um artigo anterior sobre o tipo enum em Java, uma enumeração habilita uma variável a ser configurada com valores constantes pré-definidos. Ao atribuir valores a essa variável durante a execução do programa, somente são aceitos valores presentes da lista definida da enumeração.

Aplicação: usamos tipos de enumeração sempre que precisamos representas um conjunto fixo de constantes, valores que são totalmente conhecidos na hora da compilação do programa.

Exemplos comuns de aplicação de enums são a criação de variáveis para armazenar meses do ano, dias da semana, pontos cardeais, estações do ano, planetas do sistema solar, etc.

Importante notar que, por serem constantes, os nomes dos valores dentro de um tipo enum são escritos sempre em letras maiúsculas.

Neste artigo vamos criar uma enumeração em Java, e também uma classe que será usada para interagir com a enumeração, contendo um campo do tipo enum, um método construtor e um método de uso geral para exibição de uma mensagem ao usuário, dependendo do valor da enum que for solicitado no programa principal.

Crie um novo projeto Java em um IDE, criando uma classe principal main(). Meu projeto recebeu o nome de EnumsJava.

Criar uma enum em Java

Vamos criar primeiramente um tipo enum para armazenar os nomes dos planetas do Sistema Solar. Vamos chamar essa enum de EnumPlanetas. Para isso, crie um novo arquivo em seu IDE preferido e digite o código a seguir:

Código:

package enums;
public enum EnumPlanetas {
    MERCÚRIO,
    VÊNUS,
    TERRA,
    MARTE,
    JÚPITER,
    SATURNO,
    URANO,
    NETUNO
}

Testar a enum no programa principal

Vamos testar a enum criada no programa principal usando um laço de repetição para iterar pelos seus itens constituintes, exibindo cada nome da enum na tela.

Código:

package enums;
import java.util.Scanner;
public class EnumsJava {
  public static void main(String[] args) {
    // listar os valores possíveis para a enumeração:
    for (EnumPlanetas p : EnumPlanetas.values()) {
      System.out.printf("%s%n", p);
    }
  }
}

Devem ser exibidos na tela os nomes dos planetas, um por linha:

Iteração por valores em uma enumeração Java

Criar classe para manipulação da enum

Agora vamos criar uma nova classe para trabalhar com a enumeração de planetas. Vamos batizar essa classe como ClasseTesteEnum. Crie um novo arquivo e digite o código a seguir. 

Código:

package enums;
public class ClasseTesteEnum {
  EnumPlanetas planeta;
  ClasseTesteEnum(String planeta) {
    this.planeta = EnumPlanetas.valueOf(planeta); // converte string para valor de enum
  }
  public void viajarPlaneta() {
    switch(planeta) {
      case MERCÚRIO:
        System.out.println("Muito quente por lá");
        break;
      case TERRA:
        System.out.println("Já estamos aqui");
        break;
      case SATURNO:
        System.out.println("Belíssimos anéis!");
        break;
     case URANO:
        System.out.println("Muito longe");
        break;
     default:
        System.out.println("Passagens esgotadas!");
        break;
    }
  }
}

Note que não criamos casos para todos os planetas listados na enumeração – esses serão tratados pelo caso default da declaração switch.

Salve o arquivo. Vamos testar o programa logo em seguida.

Testar a classe no programa principal

Vamos testar a classe criada instanciando-a no programa principal, e criando assim um objeto que chamaremos de pl.

Código:

package enums;
import java.util.Scanner;
public class EnumsJava {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    String planeta;
    System.out.println("Para qual planeta deseja viajar?");
    planeta = entrada.next().toUpperCase(); // converte para maiúsculas, pois os valores da enum são sempre maiúsculos
    entrada.close();
    // Criar o objeto pl
    ClasseTesteEnum pl = new ClasseTesteEnum(planeta);
    pl.viajarPlaneta();
  }
}

Testando com o planeta Urano:

Teste de tipo enum em Java com Urano

Vamos testar agora com o planeta Marte:

Teste de tipo enum em Java com Marte

E, finalmente, um teste com o planeta-anão Ceres (este não existe na listagem da enumeração):

Teste de tipo enum em Java com Planeta-anão Ceres

A o tentar rodar o programa passando o valor Ceres (um planeta-anão do Sistema Solar), é retornado um erro, pois esse valor não pertence à enumeração, que somente aceita os valores constantes que foram definidos em sua declaração. A exceção lançada é java.lang.IllegalArgumentException: No enum constant enumsJava.EnumPlanetas.CERES.
Neste caso, devemos tratar a exceção de alguma forma para que o erro não prejudique a execução do programa.

Agora aproveite e assista ao vídeo do canal Bóson Treinamentos sobre o assunto:

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

2 Comentários em Tipo enum em Java e classe de teste

  1. FABIO COTA DA FONSECA // 19/09/2021 em 9:57 // Responder

    Queria saber como faço para pagar o curso e saber mas sobre os cursos…..Prefiro que me liguem 21-996845718 Me Chamo FÀBIO , Sou Novo em Programação e o sait Para quem entende ja de Programação e facil entender.

  2. Muuito bom !
    Enfim um exemplo que me ajudou a entender enums com variaveis em classes!
    Ufaaaa.
    Oarabens

Escreva um comentário

Seu e-mail não será divulgado


*