久久久久女教师免费一区-亚洲精品久久-www.com国产-欧美亚洲日本-99热在线免费观看-欧美久久久

北大青鳥技術(shù)指導(dǎo):Java中的“枚舉類型”

幾乎每一個(gè)學(xué)習(xí)JAVA語(yǔ)言的人在學(xué)習(xí)枚舉的時(shí)候首先的一個(gè)疑問(wèn)就是"為什么不用static final字段替代?",有這個(gè)疑問(wèn)就說(shuō)明你已經(jīng)摸索到了枚舉類型的最主要功能:以統(tǒng)一命名的常量來(lái)替換變化無(wú)常的直接量,這是毫無(wú)疑問(wèn)是枚舉的最主要作用,在大多數(shù)情況下,用static final是足夠的,所以N多知名的源碼里我們會(huì)經(jīng)常看到用static final字段定義的一系列常量;那么為什么要用枚舉呢?北大青鳥通州校區(qū)老師列出了以下幾個(gè)原因:

枚舉的元素是一個(gè)實(shí)例,所以也是一個(gè)類型,相對(duì)字段更具有擴(kuò)展性:擴(kuò)展自段、方法、遍歷;

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

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

枚舉在Java里即是一種需要死記硬背的語(yǔ)法,也是一種需要好好理解的設(shè)計(jì)

原理

枚舉提供了一套特定的、僅針對(duì)編譯時(shí)的語(yǔ)法(在運(yùn)行時(shí)枚舉被翻譯為普通類);為"枚舉"這個(gè)功能提供了一套量身定制的語(yǔ)法。用于在"枚舉"這個(gè)特定場(chǎng)合提供方便快捷、及相對(duì)可擴(kuò)展的功能,而不需要開(kāi)發(fā)人員自己再重新實(shí)現(xiàn)一套。enum這個(gè)東西,相對(duì)于class來(lái)說(shuō),前者僅是編譯時(shí)的一個(gè)東西,在運(yùn)行時(shí)enum也被翻譯成了class,換句話說(shuō),沒(méi)有enum,Java語(yǔ)言仍然保持相同強(qiáng)大的功能,只是在處理"枚舉"這一類需求時(shí),程序員可能會(huì)更頭疼一點(diǎn)。

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

語(yǔ)法特征

一句話搞定

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

如果我們用class語(yǔ)法來(lái)實(shí)現(xiàn),相當(dāng)于(僅是相當(dāng)于,只為了讓大家了解到用原始的語(yǔ)法實(shí)現(xiàn)枚舉的功能有多么復(fù)雜):

final class A extends Enum{ //編譯器給我們生成的字段、方法, 如values(); //相關(guān)構(gòu)造函數(shù) 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); }

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

元素與元素間的區(qū)別用odinal字段,值從0開(kāi)始依次遞增

元素的打印標(biāo)記用name字段

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

枚舉申明類至少用final修飾

枚舉申明類如果是其它類的成員類,那么編譯后默認(rèn)會(huì)加static修飾,變成靜態(tài)員類

枚舉在編譯時(shí)會(huì)自動(dòng)加上一些"方法",如values();

枚舉類編譯時(shí)自動(dòng)繼承Enum

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

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡(jiǎn)章
主站蜘蛛池模板: 亚洲国产第一区二区香蕉日日 | 中文字幕日韩精品亚洲七区 | 中文国产成人精品久久一 | 国产一区二区三区在线观看影院 | 日本三级一区二区三区 | 亚洲国产精品一区二区首页 | 国产精品九九视频 | 成人国产精品一级毛片了 | 亚洲成人精品久久 | 久久久久久久久久久久福利 | 日韩欧美在线观看视频一区二区 | 一级毛片成人午夜 | 亚洲美女视频在线 | 18视频免费网址在线观看 | 日韩成人免费一级毛片 | 播播网手机在线播放 | 69av美女| 青草久草| 美女视频黄的免费视频网页 | 一级黄色毛片免费看 | 性欧美美国级毛片 | 成人毛片网 | 日韩专区亚洲综合久久 | 成人18免费入口 | 欧美一级免费大片 | 一级片视频免费看 | 精品一区视频 | 日本色网址 | 欧美日本一区二区三区生 | 在线毛片观看 | 日韩 欧美 中文 亚洲 高清 在线 | 91久国产在线观看 | 午夜影院福利社 | 久久成人精品 | www.操操操 | 国产一区亚洲二区三区 | 亚洲精品久久久久综合91 | 国内交换一区二区三区 | 亚洲国产日韩在线 | 欧美特级午夜一区二区三区 | 亚洲成年人免费网站 |