First simulate the enumeration class:
Packageenumtest; Public classEnumtest { Public Static voidMain (string[] args) {WeekDay day=Weekday.sun; System.out.println (Day.nextday ()); }}//first, simulate an enumeration (say, the basic idea of how enumerations are formed)Abstract classweekday{PrivateWeekDay () {}//to privatize its constructor, because instances of enumerations are fixed Public Static FinalWeekDay MON =NewWeekDay () {//define (member) Inner class@Override PublicWeekDay NextDay () {returnWeekday.sun; } }; Public Static FinalWeekDay SUN =NewWeekDay () {@Override PublicWeekDay NextDay () {returnWeekday.mon; } }; Public AbstractWeekDay nextday (); @Override PublicString toString () {return This==sun? " SUN ": MON"; }}
Enumeration in Java: (jdk1.5 or more)
Packageenumtest; Public classEnumtest { Public Static voidMain (string[] args) {WeekDay day=Weekday.sun; System.out.println (day); System.out.println (Day.name ()); System.out.println (Day.ordinal ()); //enumerating the locations of instances in an enumeration classSystem.out.println (day.tostring ()); System.out.println (Weekday.valueof ("MON")); }}enumweekday{Sun,mon (), THU (1), Wes,thr,fri,sat; //construction method can only be privatized PrivateWeekDay () {System.out.println ("Call the parameterless constructor ..."); } PrivateWeekDay (inti) {System.out.println ("The parameter constructor was called"); } }
The results are as follows:
Try to understand enumerations