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:
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:
Vamos testar agora com o planeta Marte:
E, finalmente, um teste com o planeta-anão Ceres (este não existe na listagem da enumeração):
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:
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.
Muuito bom !
Enfim um exemplo que me ajudou a entender enums com variaveis em classes!
Ufaaaa.
Oarabens