Enumeration em Java

Um enum pode ser pensado como sendo uma lista enumerada de valores pré-definidos. Por exemplo:

Vamos supor que temos uma classe denominada Computador, e que nosso Computador possa pertencer apenas a um ModeloPC pré-definido: HP, DELL ou ACER.

Temos a garantia de que o nosso Computador terá somente um dos valores pré-definidos.

Podemos colocar nosso enum dentro de classes, mas nunca dentro de métodos:

A diferença está no momento de acessar o enum, pois temos que colocar o nome da classe que o contém, antes:

Quando um enum é declarado fora de uma classe, ele pode ter os seguintes modificadores de acesso:

  • public
  • default

Quando um enum é declarado dentro de uma classe, ele pode ter os seguintes modificadores de acesso:

  • public
  • default
  • protected
  • private

Podemos pensar em um enum como sendo um tipo de classe:

Saída:

Complicando um pouquinho

Declarando variáveis, construtores, métodos…

Vamos supor que temos uma classe denominada Roda, e que nossa Roda possa ter um dos 3 tipos: STANDARD, TUNNADA ou HIPER_TUNNADA. E, desejamos saber um pouco além do tipo da roda. Queremos saber o tamanho da roda em polegadas.

Testando a classe:

Por algum motivo desejamos adicionar um método para obter um código referente ao tipo de roda. A maioria das rodas terá o código ‘B’, mas a roda HIPER_TUNNADA terá o código ‘A’. Para que isso aconteça, temos que implementar um método que retorne ‘B’ para a maioria (STANDARD, TUNNADA) das rodas e dentro do corpo de HIPER_TUNNADA devemos implementar o mesmo método retornando o código ‘A’. Então, se a roda escolhida for STANDARD ou TUNNADA, o método getCodigo() retornará o código ‘B’, caso a roda escolhida seja a roda HIPER_TUNNADA retornará ‘A’, pois o método de HIPER_TUNNADA substituiu o método getCodigo().

Testando:

Há mais algumas particularidades sobre o enum, mas o mais importante foi citado.

Até o próximo post!


2 Comentários on “Enumeration em Java”

  1. Eulen Mesquita disse:

    Muito legal seu post. Eu não conhecia enum, estou vendo que vai ser muito bom pra trabalhar com meses e estados, etc.

    Um abraço

  2. Alexandre disse:

    Muito bom, me ajudou bastante. Seu post foi o melhor que enconrei na net sobre “enum”. Obrigado!


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s