1. 程式人生 > >java列舉(enum)詳解

java列舉(enum)詳解

       一.為什麼要使用列舉.

            需求:定義一個Employee(員工),使用一個變數restday來表示他哪一天休息.如圖:

           

            

           

           

       二.列舉的特點:

            1.列舉的直接父類:java.lang.Enum,但是不能顯示繼承Enum.

            2.列舉就相當於一個類,可以定義構造方法,成員變數,普通方法和抽象方法.

            3.預設私有的構造方法,即使不寫訪問許可權也是private(假構造器,底層沒有無引數構造器)

            4.每一個列舉例項分別用一個全域性常量表示,列舉類的物件是固定的,例項個數有限,不能使用new關鍵字.

            5.列舉例項必須位於列舉體中最開始部分,列舉例項列表後要有分號與其他成員相分隔.

            6.列舉例項後有花括號時,該例項是列舉類的匿名內部類物件.

       三.列舉的使用:

            1.列舉中都是全域性公共的靜態常量,可以直接使用列舉類名呼叫.
                             Weekday day = Weekday.SATURDAY();

            2.因為java.lang.Enum類是所有列舉類的父類,所以所有的列舉物件可以呼叫Enum類中的方法.

                             String name = 列舉物件.name();//返回列舉物件的常量名稱

                             int ordinal = 列舉物件.ordinal();//返回列舉物件的序號,從0開始

                             String str = 列舉物件.toString();//返回列舉物件的常量名稱

            3.編譯器生成的列舉類的靜態方法(從反編譯程式碼中):
                     列舉型別[]  values();
                     Weekday[] ws   = Weekday.values();:返回當前列舉型別所有的常量,使用一個數組封裝起來.
                     列舉型別  valueof(String name);
                     Weekday  day = Weekday.valueOf("MONDAY");//把一個指定名稱字串轉換為當前列舉類中同名的常量.

相關推薦

Java 列舉(enum) 7種常見的用法

JDK1.5引入了新的型別——列舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。 大師兄我又加上自己的理解,來幫助各位理解一下。 用法一:常量 在JDK1.5 之前,我們定義常量都是: public static final.... 。現在好

java列舉(enum)

       一.為什麼要使用列舉.             需求:定義一個Employee(員工),使用一個變數restday來表示他哪一天休息.如圖:                                                       

Java 列舉(enum) 7種常見的用法(轉)

原文:https://blog.csdn.net/qq_27093465/article/details/52180865JDK1.5引入了新的型別——列舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。大師兄我又加上自己的理解,來幫助各位理解一下。用法

Java 列舉 enum

> 本文部分摘自 On Java 8 ## 列舉型別 Java5 中添加了一個 enum 關鍵字,通過 enum 關鍵字,我們可以將一組擁有具名的值的有限集合建立為一種新的型別,這些具名的值可以作為常規的程式元件使用,例如: ```java public enum Spiciness {

C++中列舉enum

轉載部落格地址:https://blog.csdn.net/bruce_0712/article/details/54984371     眾所周知,C/C++語言可以使用#define和const建立符號常量,而使用enum工具不僅能夠建立符號常量,還能定義新

Java列舉型別(原理+用法)

可以這麼說,Java的列舉型別本來是不存在的,但Java發了個"語法糖",就有了列舉型別。Java從JDK1.5開始支援列舉,通常一個特性如果在一開始沒有提供,在語言發展後期才新增,會遇到一個問題,就是向後相容性的問題。像Java在1.5中引入的很多特性,為了向後相容,編譯

Java 列舉(enum)型別 常見7種用法

JDK1.5引入了新的型別——列舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。 用法一:常量 在JDK1.5 之前,我們定義常量都是: public static final.... 。現在好了,有了列舉,可以把相關

java enum(列舉)使用

說來慚愧,一直沒有怎麼使用過列舉,只知道可以定義日期中的星期幾,沒有用到也就沒有學習,現在還是覺得應該認真瞭解下,在可以用到的時候也會發現原來列舉也可以解決這個問題。廢話不多說了,詳細在下面: 原始的介面定義常量 public 

java enum(列舉)使用 + 總結

enum 的全稱為 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。下面是我在使用 enum 過程中的一些經驗和總結。原始的介面定義常量public interface IConstants { Stri

Java 列舉enum 使用

在實際程式設計中,往往存在著這樣的“資料集”,它們的數值在程式中是穩定的,而且“資料集”中的元素是有限的。 例如星期一到星期日七個資料元素組成了一週的“資料集”,春夏秋冬四個資料元素組成了四季的“資料集”。 在java中如何更好的使用這些“資料集”呢?因此列舉便派上了用場,

Javaenum(列舉)使用 + 總結

enum 的全稱為 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中。     下面是我在使用 enum 過程中的一些經驗和總結,主要包括如下內容: 8. 總結

java enum(列舉)使用和總結(轉)

enum 的全稱為 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中。     下面是我在使用 enum 過程中的一些經驗和總結,主要包括如下內容: 1. 原始的介面定義常量 2. 語法(定義) 3. 遍歷、switch 等常用

【C/C++開發】C++之enum列舉量宣告、定義、使用與列舉列舉類前置型別宣告

前面講到可以通過強制轉換將其他型別值賦給列舉變數:Weekday = enumType(2);這是合法的;但是Weekday = enumType(20);是非法的。這裡涉及列舉取值範圍的概念:列舉的上限是 大於最大列舉量的 最小的2的冪,減去1; 列舉的下限有兩種情況:一、列舉量的最小值不小於0,則列

C++之enum列舉量宣告、定義、使用與列舉

前面講到可以通過強制轉換將其他型別值賦給列舉變數:Weekday = enumType(2);這是合法的;但是Weekday = enumType(20);是非法的。這裡涉及列舉取值範圍的概念:列舉的上限是 大於最大列舉量的 最小的2的冪,減去1; 列舉的下限有兩種情況:一、列舉量的最小值不小於0,則列

java.util包(二)——Connection接口

操作 相同 元素 叠代 cat roo soft true nbsp Connection接口介紹   Connection接口是java集合的root接口,沒有實現類,只有子接口和實現子接口的各種容器。主要用來表示java集合這一大的抽象概念。   Connection接

java對象

add splay view created 元素 繼承關系 外部 優化 csdn java對象詳解 內存布局 普通對象布局 數組的內存布局 內部類的內存布局 對象分解 對象頭-mark word(8字節) 實例數據 對齊填充(可選) java鎖分析

Java泛型

對象數組 整形 泛型方法 tty 接受 一個 div -m color 泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。 假定我們有這樣一個需求:寫一個排序方法,能夠對整形數組、字符串數組甚至其他任何類型的數組進行排序,該如何實現? 答案是可以使用 Ja

Java常量池

回收 array 數值 編譯期 二進制格式 new 保持 占用 get 轉自:http://www.cnblogs.com/iyangyuan/p/4631696.html jvm虛擬內存分布圖: 程序計數器:JVM執行程序的流水線。 本地方法棧:JVM調用操作系統方法所

Java線程(一)

線程 thread runnable 程序、進程、線程的概念 程序(program):是為完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜態的代碼,靜態對象。 進程(process):是程序的一次執行過程,或是正在運行的一個程序。動態過程:有它自身的產生、存在和消亡的過程。 如

Java反射機制

java 反射 反射機制 工廠模式 1反射機制是什麽反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。在面向對象的世界裏,萬事萬物皆對象.在ja