Enums – Rapidinho

Fala galera,

diretamente de Brasília com mais uma postagem arroz com feijão.  Hoje, aproveitando que voltei a estudar para certificação (antiga SCJP) vou falar um pouco sobre Enum.

O Enum é um recurso disponibilizado a partir da versão 1.5 do Java (ou Java 5), que veio para limitar uma determinada faixa de valores para variáveis. Ou seja, uma lista com valores pré-definidos.

Alguns descrevem como um tipo de classe especial, eu gosto de dizer que ele é uma lista de constantes. Porém não sei se o termo é correto.

A declaração básica de um Enum é parecida com a de uma classe e deve ser feita da seguinte forma:

enum <nome da variável> { valor 1, valor 2, …, valor n}.

Tal como exemplo:

Podemos declarará-los fora de classes como mostrado acima ou dentro de classes conforme abaixo:

Perceberam alguma diferença na declaração do Enum no primeiro e segundo exemplo? Não? O ponto-e-vírgula no fim da declaração é opcional, então muito cuidado, isso pode valer uma questão na sua prova de certificação.

Apesar de podermos declará-los dentro ou fora de classes, eles são proibidos dentro de métodos e o compilador gritará de raiva caso você faça isso. O enum se declarado em um arquivo a parte, deve seguir as mesmas regras de uma classe, ou seja, nome do Enum é o mesmo nome do arquivo. No nosso caso é o TamanhoRefrigerante.java.

Enums não podem ser instanciados (não daria para usar o new TamanhoRefrigerante()) e são acessados estaticamente através do nome.CONSTANTE;

Um enum possui um método values() pelo qual é possível iterar seus valores pré-definidos.

Bom pessoal, essa foi só uma introdução ao assunto. Ainda tenho muito mais a acrescentar como falar de sobrecarga de construtores e mais, porém fica para uma próxima postagem. Por ora é o suficiente.

Abraços.

Lucas Menezes

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">