Utilize atributos no enum.
Um exemplo criando um atributo para o número do mês:
publicclassTestEnum{enumMonthName{JANUARY(1),FEBRUARY(2),MARCH(3),APRIL(4),MAY(5),JUNE(6),JULY(7),AUGUST(8),SEPTEMBER(9),OCTOBER(10),NOVEMBER(11),DECEMBER(12);//o número depois do valor representa o parâmtro passado para o contrutor intmonthNumber;// Atributo que irá guardar o número do mêsMonthName(intnumber){// ConstrutormonthNumber=number;}intgetMonthNumber(){// getter do atributoreturnmonthNumber;}}publicstaticvoidmain(String[]args){MonthNamenames[]=MonthName.values();for(MonthNamemonth:names){System.out.println(month.getMonthNumber());}}}
davidtiagoconceicao
Ocorreu um erro e pensei que não havia enviado a mensagem anterior…
De qualquer maneira, se você quiser aceitar o valor numérico default (0 = JANUARY etc. ) e for preguiçoso, você pode usar [url=http://java.sun.com/javase/6/docs/api/java/lang/Enum.html#ordinal()]Enum.ordinal[url]. Exemplo:
MonthNamem=MonthName.JANUARY;System.out.printf("O mes de janeiro tem o ordinal %d %n",m.ordinal());// imprime 0
bsl.lacerda
Valeu galera!!!
ceceu
davidtiagoconceicao:
Utilize atributos no enum.
Um exemplo criando um atributo para o número do mês:
publicclassTestEnum{enumMonthName{JANUARY(1),FEBRUARY(2),MARCH(3),APRIL(4),MAY(5),JUNE(6),JULY(7),AUGUST(8),SEPTEMBER(9),OCTOBER(10),NOVEMBER(11),DECEMBER(12);//o número depois do valor representa o parâmtro passado para o contrutor intmonthNumber;// Atributo que irá guardar o número do mêsMonthName(intnumber){// ConstrutormonthNumber=number;}intgetMonthNumber(){// getter do atributoreturnmonthNumber;}}publicstaticvoidmain(String[]args){MonthNamenames[]=MonthName.values();for(MonthNamemonth:names){System.out.println(month.getMonthNumber());}}}
Amigo no seu teste está saindo:
1
2
3
4
5
6
7
8
9
10
11
12
bom, se eu quizer que saia:|
Janeiro
Fevereiro
Março
Abril
...etc
como que eu faria: ?
bsl.lacerda
Assim
publicclassTestaEnum{enumMes{January("Janeiro"),February("Fevereiro");// Faz o mesmo para o restante dos meses.publicStringnome;Mes(Stringnome){this.nome=nome;}StringgetNome(){returnthis.nome;}}publicstaticvoidmain(String[]args){Mes[]meses=Mes.values();for(Mesmes:meses){System.out.println(mes.getNome());}}}
A
alexfmjr
Se vc quiser o nome é só colocar o campo ENUM que deseja, seguindo o exemplo anterior:
intmonthNumber;// Atributo que irá guardar o número do mês MonthName(intnumber){// Construtor monthNumber=number;}intgetMonthNumber(){// getter do atributo returnmonthNumber;}}publicstaticvoidmain(String[]args){MonthNamenames[]=MonthName.values();for(MonthNamemonth:names){System.out.println(month+" - "+month.getMonthNumber());}}
}
dessa forma irá imprimir:
JANUARY - 1
FEBRUARY - 2
MARCH - 3
APRIL - 4
MAY - 5
JUNE - 6
JULY - 7
AUGUST - 8
SEPTEMBER - 9
OCTOBER - 10
NOVEMBER - 11
DECEMBER - 12