杰点

hello java

枚举

 1 //枚举综合测试
 2 public class EnumTest {
 3 
 4     /**
 5      * @param args
 6      */
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         WeekDay1 Mon=WeekDay1.MON;//实例化
10         System.out.println(Mon.nextday()); //调用枚举类内的方法
11         WeekDay weekday2=WeekDay.FRI;
12         System.out.println(weekday2);
13         System.out.println(weekday2.name());//显示枚举元素名称
14         System.out.println(weekday2.ordinal());//显示枚举元素索引
15         System.out.println(WeekDay.valueOf("SUN"));//根据字符串得到枚举对象
16         //WeekDay.values() 返回枚举元素数组
17         System.out.println(WeekDay.values().length);
18         
19         System.out.println(TrafficLamp.valueOf("RED").nextlamp());
20     }
21     
22     public enum WeekDay{
23         SUN(1),MON,TUE,WED,THI,FRI,SAT; //枚举元素必须位于第一位
24         /*枚举的构造方法必须私有*/
25         private WeekDay(){System.out.println("first");}
26         private WeekDay(int day){System.out.println("second");}
27     }
28     
29     public enum TrafficLamp{
30         /*
31          * 带有抽象方法的枚举
32          * 每个元素都是枚举的子类
33          * 在枚举元素{}中 实现抽象方法
34          * 
35          * 只有一个元素的枚举,可以实现单例模式
36          * */
37         RED(30){
38             public TrafficLamp nextlamp(){
39                 return GREEN;
40             }
41         },GREEN(45){
42             public TrafficLamp nextlamp(){
43                 return YELLOW;
44             }
45         },YELLOW(5){
46             public TrafficLamp nextlamp(){
47                 return RED;
48             }
49         };
50         
51         public abstract TrafficLamp nextlamp();
52         private int time;
53         private TrafficLamp(int time){this.time=time;}
54     }
55 
56 }
57 

 1 //模拟枚举,枚举是一种特殊的类,每个元素都是枚举的实例对象,枚举可以有自己的属性和方法
 2 public abstract class WeekDay1 {
 3     private WeekDay1(){}//私有化构造函数,则外界无法实例化
 4     
 5     public final static WeekDay1 MON=new WeekDay1(){
 6 
 7         @Override
 8         public WeekDay1 nextday() {
 9             // TODO Auto-generated method stub
10             return SUN;
11         }
12         //WeekDay的子类,要实现抽象方法
13     };
14     //定义成员
15     public final static WeekDay1 SUN=new WeekDay1(){
16         @Override
17         public WeekDay1 nextday(){
18             return MON;
19         }
20     };
21     
22     public abstract WeekDay1 nextday(); //定义一个抽象方法
23 /*    public WeekDay nexday(){
24         this是指该对象,因为类的非静态方法只能有对象来调用
25          * 
26         if(this==MON){
27             return SUN;
28         }else{
29             return MON;
30         }
31     }*/
32     
33     public String toString(){
34         return this==MON?"MON":"SUN";
35     }
36 
37 }
38 

posted on 2010-12-29 13:15 杰点 阅读(127) 评论(0)  编辑  收藏 所属分类: JAVA


只有注册用户登录后才能发表评论。


网站导航:
 
<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

留言簿

文章分类

文章档案

搜索

最新评论