用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

JDK1.5后出现的枚举

2013-07-22 作者: 乐果404举报

[java]代码库

枚举的作用:通过定义类来限制一定范围的值。
 
1. 简单的枚举
 
在JDK1.5之前可以通过以下代码来完成。
 
class Grade {
    private Grade(){}   //必须把构造函数设为私有的
     
    //创建static final的本类对象,用于限定范围
    public static final Grade A = new Grade();
    public static final Grade B = new Grade();
    public static final Grade C = new Grade();
    public static final Grade D = new Grade();
    public static final Grade E = new Grade();
     
}
 
在JDK1.5之后,通过枚举来实现。枚举的关键字是enum。以上代码可用枚举实现如下:
 
enum Grade {
    A,B,C,D,E;
}
 
大大简化了代码的书写。
 
2. 带有参数的构造函数的枚举,用于封装更多的信息。
 
//Grade分级,A(100~90)、B(89~80)、C(79~70)、D(69~60)、E(59~0)
enum Grade {
    A("100~90"),B("89~80"),C("79~70"),D("69~60"),E("59~0");
     
    private String value;   // 定义私有变量value
    // 定义有参的构造函数,可以封装更多的信息
    private Grade(String value) {
        this.value = value;
    }
    // 定义公共方法,用于获取value
    public String getValue() {
        return this.value;
    }
}
 
3. 带抽象的枚举
 
enum Grade {
    // 初始化对象时要覆写抽象方法
    A("100~90"){
        public String localValue() {
            return "优";
        }
    },
    B("89~80"){
        public String localValue() {
            return "良";
        }
    },
    C("79~70"){
        public String localValue() {
            return "一般";
        }
    },
    D("69~60"){
        public String localValue() {
            return "差";
        }
    },
    E("59~0"){
        public String localValue() {
            return "不及格";
        }
    };
     
    private String value;   // 定义私有变量value
    // 定义有参的构造函数,可以封装更多的信息
    private Grade(String value) {
        this.value = value;
    }
    // 定义公共方法,用于获取value
    public String getValue() {
        return this.value;
    }
    // 定义抽象方法
    public abstract String localValue();
}
 
注意:枚举中定义的A,B,C,D,E均是对象,不是属性。


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...