北大青鳥技術指導:Java中的“枚舉類型”

      幾乎每一個學習JAVA語言的人在學習枚舉的時候首先的一個疑問就是"為什么不用static final字段替代?",有這個疑問就說明你已經摸索到了枚舉類型的最主要功能:以統一命名的常量來替換變化無常的直接量,這是毫無疑問是枚舉的最主要作用,在大多數情況下,用static final是足夠的,所以N多知名的源碼里我們會經?吹接胹tatic final字段定義的一系列常量;那么為什么要用枚舉呢?北大青鳥通州校區老師列出了以下幾個原因:

      枚舉的元素是一個實例,所以也是一個類型,相對字段更具有擴展性:擴展自段、方法、遍歷;

      枚舉的申明類也是一個類型,相對于一段的字段申明的所屬類,它提供了很多針對枚舉的方法,如values();

      枚舉訪問、比較是兼具性能(ordinal)、及可讀性(name)的;

      枚舉在Java里即是一種需要死記硬背的語法,也是一種需要好好理解的設計

      原理

      枚舉提供了一套特定的、僅針對編譯時的語法(在運行時枚舉被翻譯為普通類);為"枚舉"這個功能提供了一套量身定制的語法。用于在"枚舉"這個特定場合提供方便快捷、及相對可擴展的功能,而不需要開發人員自己再重新實現一套。enum這個東西,相對于class來說,前者僅是編譯時的一個東西,在運行時enum也被翻譯成了class,換句話說,沒有enum,Java語言仍然保持相同強大的功能,只是在處理"枚舉"這一類需求時,程序員可能會更頭疼一點。

      枚舉這個東西讓我記起了小時候一件事情,買折扇;那時記得電視里經常放關于鄭板橋的電視劇,鄭板橋胸前經常有一把寫著"鄭板橋"三大字的析扇,所以那時流行起了拆扇風,記得鎮上有一家小店的折扇賣得非常好,與一般小店不一樣的是,那家賣折扇的老板書法也相當不錯(至少我們那時看起來也是有模有樣),所以每次買扇子時,我們都會要求老板幫忙在扇子上寫上我們的名字,這樣這個老板的扇子"推銷"就相當成功;其它枚舉這個功能,就相當于當年Sun老板(現在是oracle)在推銷Java這把扇子上寫上名字,雖然即使老板不寫,我們自己也可以寫,但是寫得怎么樣,或許更好?或許更差?但總的來說,老板寫的還是有一定水準的,而且我們肯定是可以省力的。

      語法特征

      一句話搞定

      enum A{BigA, SmallA{ String extField; void doSomeThing(){}; }, LargeA}

      如果我們用class語法來實現,相當于(僅是相當于,只為了讓大家了解到用原始的語法實現枚舉的功能有多么復雜):

      final class A extends Enum{ //編譯器給我們生成的字段、方法, 如values(); //相關構造函數 static final A BigA = new A("BigA", 0); staitc final A SmaillA = new A("SmallA", 1){ void doSomeThing(){} } static final A BigA = new A("LargeA", 3); }

      隱藏特性(北大青鳥通州校區)

      元素與元素間的區別用odinal字段,值從0開始依次遞增

      元素的打印標記用name字段

      枚舉元素編譯后都是static final修飾

      枚舉申明類至少用final修飾

      枚舉申明類如果是其它類的成員類,那么編譯后默認會加static修飾,變成靜態員類

      枚舉在編譯時會自動加上一些"方法",如values();

      枚舉類編譯時自動繼承Enum

      枚舉的語法一定要好好理解(北大青鳥通州校區)

      北大青鳥網上報名
      北大青鳥招生簡章
      主站蜘蛛池模板: 精品无码一区二区三区亚洲桃色| 国产成人精品视频一区二区不卡 | 亚洲AV日韩精品一区二区三区| 亚洲无线码一区二区三区| 成人中文字幕一区二区三区 | 精品国产一区二区三区久久蜜臀| 精品人妻无码一区二区三区蜜桃一 | 国产福利一区二区精品秒拍| 久久一区二区精品| www.亚洲一区| 日亚毛片免费乱码不卡一区| 成人无码精品一区二区三区| 亚洲国产一区国产亚洲| 亚洲熟女一区二区三区| 亚洲无人区一区二区三区| 中文字幕一区二区三区在线播放 | 视频一区二区中文字幕| 国产一区二区免费在线| 在线电影一区二区| 日韩AV片无码一区二区不卡| 国产精品日韩欧美一区二区三区 | 日韩精品中文字幕视频一区 | 亚洲av无码一区二区三区乱子伦 | 亚洲av综合av一区二区三区 | 亚洲乱色熟女一区二区三区丝袜| 亚洲国产一区二区视频网站| 一区二区三区免费电影| 在线精品国产一区二区三区 | 亚洲一区二区三区高清| 亚洲色偷偷偷网站色偷一区| 亚洲一区影音先锋色资源| 在线观看亚洲一区二区| 97精品国产一区二区三区 | 亚洲国产精品第一区二区三区| av无码一区二区三区| 中文字幕日本精品一区二区三区| 国产精品无码一区二区三级| 无码人妻AⅤ一区二区三区| 日韩国产免费一区二区三区| 国模视频一区二区| 91麻豆精品国产自产在线观看一区|