查漏补缺——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)的主要内容,如果未能解决你的问题,请参考以下文章