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

Posted 大眼小眼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查漏补缺——java枚举(enum)相关的知识,希望对你有一定的参考价值。

刚学完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)的主要内容,如果未能解决你的问题,请参考以下文章

20165222第一周查漏补缺

第四周查漏补缺

查漏补缺——java多态

Java面试查漏补缺

2019/5/12 查漏补缺

Java查漏补缺