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:
//declaração de Enum
enum TamanhoRefrigerante { PEQUENO, MEDIO, GRANDE} ;
//aqui a classe do Refrigerante
public class Refrigerante{
TamanhoRefrigerante tamanho;
}
//aqui vamos testar o exemplo
public class Teste{
public static void main(String[] args){
Refrigerante refri = new Refrigerante();
refri.tamanho = TamanhoRefrigerante.MEDIO;
}
}
Podemos declarará-los fora de classes como mostrado acima ou dentro de classes conforme abaixo:
//classe Refrigerante com a declaração do enum
public class Refrigerante{
enum TamanhoRefrigerante {PEQUENO, MEDIO, GRANDE}
TamanhoRefrigerante tamanho;
}
// e aqui utilizamos os tamanhos pré-definidos
public class Teste{
public static void main(String[] args){
Refrigerante refri = new Refrigerante();
refri.tamanho = TamanhoRefrigerante.MEDIO;
}
}
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.
Loading ...
Leave a comment