Para definir um enum usamos a palavra chave enum, por exemplo, o nosso enum descrito acima ficaria assim:
public enum DiasDaSemana {
DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA,
SEXTA, SABADO
}
Um enum pode ser declarado em uma classe própria ou ainda dentro de uma classe. Vejamos como é isso:
enum DiasDaSemana {
DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA,
SEXTA, SABADO
}
class Calendario {
enum Meses {
JANEIRO, FEVEREIRO, MARCO
//OUTROS MESES AQUI
}
DiasDaSemana dia;
Meses mes;
}
public class UsandoCalendario {
public static void main(String... args){
Calendario c = new Calendario();
c.dia = DiasDaSemana.SEGUNDA;
c.mes = Calendario.Meses.JANEIRO;
}
}
Apesar de enum ser um classe (é isso mesmo) um enum não é instanciado diretamente como as outras classes em java (usando new por exemplo), basta chamar uma de suas 'constantes'. A ordem dos elementos de um enum é importante e uma coisa importante também é que nada pode ser declarado antes delas. Bom, você pode declarar variáveis em um enum, mas elas precisam vir após a declaração dos elementos. Por exemplo:
enum DiasDaSemana {
private boolean diaUtil; // erro!
DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA,
SEXTA, SABADO
}
O correto seria:
enum DiasDaSemana {
DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA,
SEXTA, SABADO; // o ; é obrigatório caso declare algo depois
private boolean diaUtil;
}
Enums também pode ter construtores. Porém eles não são acessíveis fora da definição do enum. Podemos usar os construtores para inicializar algum tipo de variável ou valor default para um enum. Por exemplo:
enum DiasDaSemana {
DOMINGO(false), SEGUNDA(true), TERCA(true), QUARTA(true), QUINTA(true), SEXTA(true), SABADO(false);
// o ; é obrigatório caso declare algo depois
private boolean diaUtil;
DiasDaSemana(boolean util){
this.diaUtil = util;
}
public boolean isDiaUtil(){
return this.diaUtil;
}
Enums também pode ser utilizados com a estrutura de switch. Como no exemplo abaixo:
public enum Luas {
CHEIA, CRESCENTE, MINGUANTE, NOVA
}
.... definição da classe
Luas l = Luas.NOVA;
switch(l) {
case CHEIA: //codigo aqui
case CRESCENTE: //codigo aqui
case MINGUANTE: //codigo aqui
case NOVA: //codigo aqui
default: //codigo aqui
}
Até o próximo post.
Cara, vc acha que dá pra estudar pra certificação, trabalhar, estudar outras coisas e mesmo assim, fazer a prova e passar bem?
ResponderExcluirIsso tudo pra uma pessoa sem ser superdotada rsrsrs.