Como usar um tipo enum em Java

A vida está cheia de pequenos conjuntos de possibilidades, e Java tem um recurso que pode ajudá-lo a lidar com essas possibilidades. O recurso Java é chamado de enum digitar. Ele está disponível começando com Java versão 5.0 em diante.

Considere quem pode ganhar um jogo de beisebol.

image0.jpg
importação java.util.Scanner-import placar java.lang.System.out-classe estática {WhoWins enum {casa, visitante, nem}void main (args String []) public static {keyboard Scanner = new Scanner (System.in) -int hankees, socks- WhoWins que-out.print ( "pontuação Hankees e meias?") -hankees = keyboard.nextInt () - meias = keyboard.nextInt () - out.println () - if (hankees> meias) {que = WhoWins.home-out.println ( "Os Hankees ganhar :-)") -} else if (meias> hankees) {que = WhoWins.visitor-out.println ( "Os Socks ganhar :-(") -} else ") -out.println () - out.println (" O jogo de hoje é trazido a você por ") - out.println (" SnitSoft, o número um software ") - out.println (" vendedor na área de Hankeeville. ") - out.println (" SnitSoft é destaque orgulhosamente in ") - out.println (" Capítulo 6. E lembre-se, quatro out ") - out.println ( "de cinco médicos recomendam") - out.println ( "SnitSoft aos seus pacientes.") - out.println () - Se (que == WhoWins.home) {Out.println ( "Nós beat 'em boa Será que não temos.?") -}Se (que == WhoWins.visitor) {Out.println ( "O árbitro fez uma injusta") - ( ". Chamada") out.println -} Se (que == WhoWins.neither) {Out.println ( "O jogo vai para a prorrogação.") -} Keyboard.close () -}}

Eis o que acontece:

  • Você criar uma variável para armazenar valores de tipoQuem ganha.

    Da mesma forma que a linha de

    dupla amount-

    declara quantidade armazenar duplo valores (valores como 5,95 e 30,95), a linha

    WhoWins que-

    declara quem armazenar Quem ganha valores (valores como casa, visitante, e nem).

  • Você atribui um valor à quemvariável.

    Você executar um dos

    OMS = WhoWins.alguma coisa-

    instruções de atribuição. O comando que é executado depende do resultado do E se A declaração de hankees> meias comparação.

    que = casa- // Esta atribuição não funciona!

    o compilador dá-lhe uma casa não pode ser resolvido para uma variável mensagem de erro. Isso é apenas o caminho enum tipos de trabalho.

  • Você compara o valor da variável com cada um dosQuem ganhavalores.

    Em um E se declaração, verificar o que == WhoWins.home condição. Nos restantes dois E se declarações, você verificar que o outro Quem ganha valores.

Perto do final, você poderia ter feito sem enum valores. Você poderia ter testado coisas como hankees> meias uma segunda vez.

E se (hankees> meias) {Out.println ( "The Hankees ganhar :-)") -} // E mais tarde no programa ... if (hankees> meias) {Out.println ( "Nós beat 'em boa Será que não temos.?") -}

Mas essa tática seria desajeitado. Em um programa mais complicado, você pode acabar verificando hankees> meias uma dúzia de vezes. Seria como pedir a mesma pergunta uma e outra vez.

Em vez de verificar repetidamente a hankees> meias condição, você armazenar o resultado do jogo como um valor de enumeração. Em seguida, você verificar o valor enum quantas vezes quiser. Essa é uma maneira muito arrumado para resolver o problema verificando repetido.

menu