码迷,mamicode.com
首页 > 编程语言 > 详细

查漏补缺——java枚举(enum)

时间:2016-04-05 00:38:21      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

刚学完java,为了巩固自己的知识和为别人提供一些微末的帮助决定开通博客,求各位大牛们指出我的错误,也希望我的总结可以对别人有帮助。

enum的全称是enumeration,是JDK1.5引入的新特性,同时”泛型“也是这一阶段,下一次总结。

1.为什么要创建枚举类型?

答:在编程过程中经常可以遇见数据稳定而且有限的一组数据,比如四季{春,夏,秋,冬};

而当我们选择一个季节的时候只能四季四个值里选择一个,所以枚举类型是类型安全的,如果使用顶以外的值会编译出错。(例子)

package basedemo;
public class Enumdemo {
    enum Season{spring,summer,fall,winter}
    
    public void seaact(){
        Season s = Season.fall;(枚举值fall是枚举对象的实例)
        switch(s){
        case spring:
            System.out.println("春天到啦");
            break;
        case summer:
            System.out.println("夏天到啦");
            break;
        case fall:
            System.out.println("秋天到啦");
            break;
        case winter:
            System.out.println("冬天到啦");
            break;
        }
    }
    
    public static void main(String[] args){
        new Enumdemo().seaact();
    }
}


秋天到啦

上面为枚举的简单使用,实际上枚举是继承与java.lang.Enum类,所以定义的枚举不支持继承,

而枚举值如”春“,是枚举对象的实例并且定义为常量不允许改变。简单点说枚举是取值范围是一组固定的常量的集合。

 

另一方面在枚举类型中还可以定义其他类型(构造方法,方法,数据成员)——例子。

public class Weigth {
    enum weigth{
        kg(1000,"千克"),g(1,"克");
        private int num;
        private String str;
        //定义构造方法
        private weigth(int num,String str){
            this.num = num;
            this.str = str;
        }
        //得到参数
        public int getNum() {
            return num;
        }
        public String getStr() {
            return str;
        }
    }
}

通过上面写的代码我们可以看出枚举也可以看做是一个类,所以我们可以定义构造方法在它里面,不过要注意封装,同时推荐两个博文《温柔的枚举陷阱》和《枚举——你是那温柔的陷阱吗》可以帮助我们更好的理解美剧,就写到这里啦。

 

查漏补缺——java枚举(enum)

标签:

原文地址:http://www.cnblogs.com/yweihum/p/5353332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!