1 public abstract class WeekDay1 {
2
3 private WeekDay1(){}
4
5 public final static WeekDay1 SUN = new WeekDay1() {
6 //抽象类的方法不能实现,所以只能用内部子类实现
7 @Override
8 public WeekDay1 nextDay() {
9 // TODO Auto-generated method stub
10 return MON;
11 }
12
13 };
14
15 public final static WeekDay1 MON = new WeekDay1() {
16
17 @Override
18 public WeekDay1 nextDay() {
19 // TODO Auto-generated method stub
20 return SUN;
21 }
22
23 };
24
25 public abstract WeekDay1 nextDay();
26
27 /***
28 *
29 * @author Administrator
30 枚举 周一 到 周日 及带参数的构造方法
31 */
32 public enum WeekDay{
33 SUN(1),MON(),TUE(1,2,3,4),WED,THI,FRI,SAT;
34 private WeekDay(){System.out.println("first");}
35 private WeekDay(int day){System.out.println("second");}
36 private WeekDay(int day,int ... args){
37 System.out.println("thired");
38 }
39 }
40
41 public static void main(String[] args) {
42 System.out.println(WeekDay.SUN);
43 }
44
45
46 /***
47 * 枚举红绿黄灯
48 */
49 public enum TrafficLamp{
50 RED(30) {
51 @Override
52 public TrafficLamp nextLamp() {
53 // TODO Auto-generated method stub
54 return GREEN;
55 }
56 } ,
57 GREEN(40) {
58 @Override
59 public TrafficLamp nextLamp() {
60 // TODO Auto-generated method stub
61 return YELLOW;
62 }
63 },
64 YELLOW(5) {
65 @Override
66 public TrafficLamp nextLamp() {
67 // TODO Auto-generated method stub
68 return RED;
69 }
70 };
71 public abstract TrafficLamp nextLamp();
72 private int time;
73 private TrafficLamp(){}
74 private TrafficLamp(int time){
75 this.time = time;
76 }
77 }
78 }