日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java枚举类型 enum

發布時間:2023/12/10 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java枚举类型 enum 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義

An enum type is a special data type that enables for a variable to be a set of predefined constants. The variable must be equal to one of the values that have been predefined for it.

枚舉類型是一種特殊數據類型,能夠為一個變量定義一組預定義的常量。變量必須等于為其預定義的值之一。

枚舉類型是Java 5中新增特性的一部分,它是一種特殊的數據類型,之所以特殊是因為它既是一種類(class)類型卻又比類類型多了些特殊的約束,但是這些約束的存在也造就了枚舉類型的簡潔性、安全性以及便捷性。

枚舉是特殊的類,可以擁有成員變量和方法。

使用

public enum Direction {//實例列表末尾的分號是可選的NORTH, SOUTH, EAST, WEST }

Direction類型的實例可以按靜態變量的方式引用:Direction.NORTH,Direction.EAST

在開發中枚舉可以用來定義常量

@Getter
public enum TaskStatueEnum {NOTSTARTEND(1,"未開始"),EXECUTIONINPROGRESS(2,"執行中"),COMPLETED(3,"已完成");
  
  private int val;
  private String descript;

  TaskStatueEnum(int val, String descript)
  {
   this.val=val;
   this.descript=descript;
  }

  public static TaskStatueEnum fomart(int val) throws Exception {
  for(TaskStatueEnum property: TaskStatueEnum.values())
  {
   if(val==property.val)
   {
   return property;
   }
   }
   throw new Exception(MessageFormat.format("找不到對應{0}的任務狀態",val));
  } }

詳解和注意

1>.枚舉類型都隱式繼承了java.lang.Enum類,因此不能繼承其他類,但可以實現接口;

? 2>.枚舉類型只能有私有的構造方法(java運行時創建,外部不能進行實例化);

? 3>不能泛型化;

? 4>當有字段和方法時,枚舉常量的列表必須以分號結尾;

? 5>編譯器在創建枚舉時會自動添加一些特殊方法。例如,它們具有一個靜態values方法。

通過javap命令反編譯class文件可以看出,并且它是被final修飾的,不能被繼承。 ?$ javap Color.class Compiled from "Color.java" public final class com.zuoquan.lt.basic.enums.Color extends java.lang.Enum<com.zuoquan.lt.basic.enums.Color> {public static final com.zuoquan.lt.basic.enums.Color RED;public static final com.zuoquan.lt.basic.enums.Color GREEN;public static final com.zuoquan.lt.basic.enums.Color BULE;public static com.zuoquan.lt.basic.enums.Color[] values();public static com.zuoquan.lt.basic.enums.Color valueOf(java.lang.String);public int getIndex();public void setIndex(int);public java.lang.String getName();public void setName(java.lang.String);static {}; }

values方法使用:

Color[] colors = Color.values(); for (Color color : colors) {System.out.println(color.getName()); }

? 6>父類Enum中的方法

S.N.Method & 描述
1protected Object clone()?該方法將拋出CloneNotSupportedException異常
2int compareTo(E o)?這種方法比較枚舉指定對象的順序.
3boolean equals(Object other)?此方法返回true,如果指定的對象是相等于枚舉常量.
4protected void finalize()?此方法返回枚舉類不能有finalize方法.
5Class getDeclaringClass()?此方法返回此枚舉常量的枚舉類型相對應的類對象.
6int hashCode()?此方法返回枚舉常量的哈希碼.
7String name()?此方法返回枚舉常量的名稱,正是因為在其枚舉聲明中聲明.
8int ordinal()?此方法返回此枚舉常量的序數(其枚舉聲明中的位置,其中初始常量被分配一個序號零).
9String toString()?此方法返回枚舉常量的名稱,在聲明中所包含的.
10static > T valueOf(Class enumType, String name)?此方法返回具有指定名稱的指定枚舉類型的枚舉常量.

https://blog.csdn.net/javazejian/article/details/71333103

?

轉載于:https://www.cnblogs.com/mengw/p/11332622.html

總結

以上是生活随笔為你收集整理的Java枚举类型 enum的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。