今天就跟大家聊聊有关enum如何在Java中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强>一。什么是枚举
强>
枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景,如我们需要表达性别(男、女)、颜色(红,黄,蓝),星期(星期一,星期二……星期日),四季(春,夏,秋,冬)地理位置(东、西、南、北),方向(前,后,左,右)等,这些场景都非常适合枚举。
<强>二。定义枚举强>
java中使用枚举来定义枚举,和类,接口具有同样的等级,(注意是枚举,而不是enum),定义枚举可以有两种情况
<强>第一种:默认构造器(空构造器)强>
public enum Quarter { 春天,夏天,秋天,冬天, }
未定义成员变量和成员方法,省略了私人季度(){}
public enum Quarter { 春天,夏天,秋天,冬天, private 季度(){} }
简单说明一下:枚举enum的构造器只能是私人
<强>第二种:定义了成员变量,带参构造器强>
枚举可以定义成员变量,包括成员属性,方法,抽象方法,静态方法等
public enum Quarter { 春天(“春“),夏季(“夏“),秋天(“秋“),冬季(“冬“); private 季度(String 名称){ this.name =,名称; } private String 名称; public String  getName (), { return 名称; } public void  setName (String 名称),{ this.name =,名称; }//静态方法 public static  void printName () { System.out.println (Quarter.SUMMER); }//抽象方法 public abstract  void printValue (); }
<>强注意:强>枚举和类一样,可以有多个构造器,即有了一个带参构造器,还可以有无参构造器,编译是可以通过的。
除此之外:
- <李>
枚举enum默认继承了. lang。枚举类,实现了. lang。Seriablizable和. lang。比较两个接口,可序列化以及进行比较,
李> <李>所有的枚举值都是常量,默认采用了公共静态最终进行了修饰,枚举不是类,自然也不能被继承或实现;
李> <李>枚举值必须在第一行,否则编译出错;
李> <强>三。枚举常见用法强>
1。获取枚举元素以及成员变量
public static void main (String [], args), {//获取枚举元素 System.out.println (Quarter.SPRING);//调用toString()方法将枚举元素转化为字符串类型 System.out.println (Quarter.SPRING.name ()); System.out.println (Quarter.SPRING.toString ());//获取成员变量 System.out.println (Quarter.SPRING.getName ()); }
输出结果:
春天春天春天
引用>
春
<强> 2。枚举遍历强>
有时候我们需要将枚举元素都取出来作为查询条件,此时就需要进行遍历,通过调用Quarter.values()方法
public static void main (String [], args), {//通过值()方法得到25元素的数组 季度[],quarters =, Quarter.values (); List<强> 3。开关条件判断强>
枚举的元素有限且固定,通过开关做条件判断却是正好
public static void main (String [], args) { Quarter Quarter =, Quarter.AUTUMN; switch (季度),{ case 春天: System.out.println(“找到了,是它:“,+,春天); 打破; case 夏天: System.out.println(“找到了,是它:“,+,夏季); 打破; case 秋天: System.out.println(“找到了,是它:“,+,秋天); 打破; case 冬天: System.out.println(“找到了,是它:“,+,冬季); 打破; 默认值: System.out.println(“未找到“); 打破; } }执行后结果:
找到了,是它:秋天
引用>
简单说明一下:其实此处不需要违约的内容,或者说将冬季作为默认即可,因为枚举天然有类型限制,你只能传递它已有的元素以及空,不过正常情况下都会提前判断传递的参数是否为null,当开关接收到空时会报java.lang.NullPointerException。
enum如何在Java中使用