Enums em Java
Liste um conjunto fixo de nomes com enum para o programa escolher so dessa lista. Escreva enum Level com LOW, MEDIUM e HIGH. Em Yard.java, atribua Level mark = Level.MEDIUM; e imprima mark. Compile com javac Yard.java e rode java Yard. A tela deve mostrar MEDIUM. Uma segunda demo roda um switch na mesma marca e imprime medium. Deixe classes abstract para a pagina seguinte — esta licao e uma lista curta de nomes fixos e como voce imprime ou ramifica em um deles.
Imprima um nome do enum
A pagina de interfaces preencheu promessas vazias de metodo com implements. Esta pagina lista constantes no lugar. Abra Yard.java. Mantenha o nome da classe publica Yard. Apague demos sobrando de Signal / implements se enterrarem a historia do enum, arquivos horn de Truck, demos de caminho, e qualquer Scanner de teclado. O programa nao deve esperar digitacao. Nenhuma linha import e necessaria.
Declare o enum acima da classe publica:
enum Level {
LOW,
MEDIUM,
HIGH
}
Separe os nomes com virgulas. Mantenha-os em maiusculas nesta forma iniciante. O ultimo nome nao precisa de virgula final neste arquivo didatico.
Dentro de Yard.main, escolha um nome e imprima:
Level mark = Level.MEDIUM;
System.out.println(mark);
Voce nao escreve new Level(). Escreve o nome do tipo, um ponto e a constante: Level.MEDIUM.
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Yard {
public static void main(String[] args) {
Level mark = Level.MEDIUM;
System.out.println(mark);
}
}
Da pasta que guarda Yard.java, rode javac Yard.java. Quando parenteses, chaves e ponto e virgula batem, javac nao escreve linha propria. Depois rode java Yard — nao java Yard.java. Tire o sufixo .java do comando de execucao. Mantenha uma classe publica no arquivo para o nome coincidir com Yard. O enum Level fica sem public nesta forma iniciante quando fica ao lado de Yard no mesmo arquivo.
A tela mostra MEDIUM. Percorra a execucao uma vez. Java comeca em Yard.main. A variavel mark guarda a constante Level.MEDIUM. Imprimir mark escreve o nome dessa constante. Os outros nomes LOW e HIGH ficam disponiveis no tipo, mas esta demo so imprime o que voce atribuiu.
Leia a linha de atribuicao outra vez: o tipo e Level, o valor e Level.MEDIUM. Os dois lados pertencem ao mesmo enum. Voce nao monta um texto livre; voce escolhe um nome listado. Guarde esse habito quando depois mudar a marca para LOW ou HIGH num experimento privado — so nomes da lista do enum sao legais.
Se ainda vir honk de um arquivo de interface, mude para o arquivo didatico de enum e rode java Yard de novo. Se javac reclamar de constante ausente, confira a grafia e a forma maiuscula de MEDIUM. Se tentar inventar um quarto nome no ponto de uso sem lista-lo no enum, javac recusa — a lista no enum e o conjunto permitido.
Diga a regra em voz alta enquanto olha a tela: enum lista os nomes, o codigo escolhe um com um ponto, a impressao mostra esse nome. Nao invente uma classe abstract nesta pagina. Classes abstract esperam a licao seguinte.
Ramifique no enum com switch
Um segundo programa mantem a mesma lista Level. main ainda atribui Level.MEDIUM. Um switch em mark imprime uma palavra em minusculas para o caso escolhido.
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Yard {
public static void main(String[] args) {
Level mark = Level.MEDIUM;
switch (mark) {
case LOW:
System.out.println("low");
break;
case MEDIUM:
System.out.println("medium");
break;
case HIGH:
System.out.println("high");
break;
}
}
}
Compile com javac Yard.java, depois rode java Yard. A tela mostra medium. O switch entrou no caso MEDIUM porque mark guardava Level.MEDIUM. O break para aquele caso para os casos seguintes nao rodarem. Mude so a constante atribuida num experimento posterior se quiser ver low ou high — mantenha a lista do enum igual.
Dentro de cada case, escreva o nome nu da constante: case MEDIUM:, nao case Level.MEDIUM:. O switch ja sabe o tipo por switch (mark). Mantenha um break apos cada impressao nesta forma iniciante para a saida didatica ficar uma linha clara. Percorra os tres casos com os olhos uma vez: LOW mapeia para low, MEDIUM para medium, HIGH para high. So uma dessas impressoes roda para uma unica atribuicao.
Se demos de interface ainda estiverem por perto, deixe-as como historia. Para esta licao rode o arquivo didatico de enum para a tela mostrar MEDIUM ou medium, nao honk. Se javac reclamar de classes publicas duplicadas, ainda ha mais de um tipo public no arquivo — mantenha so Yard publico.
Os tres nomes Level
📊 Level enum names
| Name | Role on this page |
|---|---|
LOW |
listed constant; switch can print low |
MEDIUM |
assigned and printed in both demos |
HIGH |
listed constant; switch can print high |
A tabela e o mapa curto desta pagina. O enum guarda os tres nomes. A primeira demo imprime o nome do meio como MEDIUM. A segunda demo mapeia a mesma escolha para a palavra minuscula medium. Mantenha a lista curta e fixa; nao trate a marca como um String livre digitado nesta pagina. |
Comparado com interfaces
Na pagina de interfaces, Signal prometeu metodos vazios e Truck implements Signal os preencheu. Nesta pagina, enum Level lista nomes e Yard escolhe um. Voce ainda compila Yard.java e roda java Yard. Os tokens novos sao enum, a lista de constantes em maiusculas, Level.MEDIUM, e — na segunda demo — casos switch nesses nomes.
Se um arquivo sobrando implements Signal ainda estiver aberto, voce vera corpos de metodo e honk. Mude para o arquivo de enum para o topo mostrar enum Level e main atribuir uma constante. Mantenha demos de classe abstract fora desta pagina. Mantenha entrada de teclado fora desta pagina.
Antes das classes abstract
Voce pode declarar enum Level com LOW, MEDIUM e HIGH, atribuir Level.MEDIUM e ver MEDIUM na tela. Voce pode fazer switch nessa marca e ver medium. Compile Yard.java e rode java Yard para cada demo que guardar, por vez. O programa escolheu de uma lista fixa. A pagina seguinte e classes abstract, onde um tipo pai pode deixar um metodo sem corpo completo para os filhos terminarem.
Guarde a demo de impressao para uma constante clara na tela. Guarde a demo de switch para um ramo claro nessa constante. Mantenha arquivos abstract fora desta pagina. Esses tres habitos sao o checkpoint antes de seguir. Quando MEDIUM aparece de uma impressao direta — e quando medium aparece do switch — enums fizeram o trabalho desta licao e voce esta pronto para o proximo tema sobre classes abstract.
Uma ultima passagem na pasta: um Yard publico, um enum Level com tres nomes, sem espera de teclado, sem classe abstract forcada. Rode javac Yard.java e java Yard mais uma vez na demo que deixar aberta. Se a tela ainda bater com a historia da linha do meio da tabela, a lista do enum esta solida e o curso pode ir para classes abstract na pagina seguinte.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo