第一行java與源代碼課程08章枚舉_第1頁
第一行java與源代碼課程08章枚舉_第2頁
第一行java與源代碼課程08章枚舉_第3頁
第一行java與源代碼課程08章枚舉_第4頁
第一行java與源代碼課程08章枚舉_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

李興華Java培訓(xùn)系列課程枚舉本章學(xué)習(xí)目標(biāo)理解可變參數(shù)方法的定義及使用;理解增強(qiáng)型for循環(huán)的特點(diǎn)及使用;理解靜態(tài)導(dǎo)入的操作;理解泛型的主要作用及實(shí)現(xiàn);理解多例設(shè)計(jì)模式和枚舉的操作關(guān)系;理解Annotation的定義及使用;理解接口中定義普通方法與靜態(tài)方法的作用;理解Lamda表達(dá)式的產(chǎn)生背景以及使用語法;理解方法引用的概念;掌握內(nèi)建函數(shù)式核心接口的使用。枚舉枚舉是JDK1.5之后增加的一個(gè)主要新功能,利用枚舉可以簡(jiǎn)化多例設(shè)計(jì)模式(一個(gè)類只能夠產(chǎn)生固定幾個(gè)實(shí)例化對(duì)象)的定義,同時(shí)在Java中的枚舉也可以像普通類那樣定義屬性、構(gòu)造方法、實(shí)現(xiàn)接口等認(rèn)識(shí)枚舉枚舉主要用于定義一組可以使用的類對(duì)象,這樣在使用時(shí)只能夠使用固定的幾個(gè)對(duì)象來進(jìn)行類的操作。這樣的操作形式在實(shí)際生活中非常的多:如果要表示日期的對(duì)象,那么只能夠有以下幾種定義:SUNDAY(星期日)、MONDAY(星期一)、TUESDAY(星期二)、WEDNESDAY(星期三)、THURSDAY(星期四)、FRIDAY(星期五)、SATURDAY(星期六);從JDK1.5開始,專門提供了一個(gè)新的關(guān)鍵字:enum,利用enum關(guān)鍵字就可以定義枚舉類型。范例:定義顏色的枚舉類packagecom.yootk.demo;enumColor{ //定義枚舉類

RED,GREEN,BLUE; //表示此處為實(shí)例化對(duì)象}public

classTestDemo{

public

static

voidmain(String[]args){ Colorred=Color.RED; //直接取得枚舉對(duì)象 System.out.println(red); }}程序執(zhí)行結(jié)果:REDEnum類枚舉只需要使用enum關(guān)鍵字就可以定義,但是嚴(yán)格來講,枚舉只是類結(jié)構(gòu)的加強(qiáng)而已。因?yàn)樵贘ava中使用enum定義的枚舉類就相當(dāng)于默認(rèn)繼承了java.lang.Enum類,此類定義如下:publicabstractclassEnum<EextendsEnum<E>>extendsObjectimplementsComparable<E>,SerializableEnum類定義的方法No.方法類型描述1protectedEnum(Stringname,intordinal)構(gòu)造傳遞枚舉對(duì)象的名字以及序號(hào)2publicfinalintordinal()普通取得當(dāng)前枚舉對(duì)象的序號(hào)3publicfinalStringname()普通取得當(dāng)前枚舉對(duì)象的名字packagecom.yootk.demo;enumColor{ //定義枚舉類

RED,GREEN,BLUE; //表示此處為實(shí)例化對(duì)象}public

classTestDemo{

public

static

voidmain(String[]args){ Colorred=Color.RED; //直接取得枚舉對(duì)象 System.out.println("枚舉對(duì)象序號(hào):"+red.ordinal()); System.out.println("枚舉對(duì)象名稱:"+red.name()); }}程序執(zhí)行結(jié)果:枚舉對(duì)象序號(hào):0枚舉對(duì)象名稱:RED范例:返回枚舉中的全部內(nèi)容packagecom.yootk.demo;enumColor{ //定義枚舉類

RED,GREEN,BLUE; //表示此處為實(shí)例化對(duì)象}public

classTestDemo{

public

static

voidmain(String[]args){

for(Colorc:Color.values()){ System.out.println(c.ordinal()+"-"+c.name()); } }}程序執(zhí)行結(jié)果:0-RED1-GREEN2-BLUE枚舉中定義其它結(jié)構(gòu)按照之前所理解,枚舉就屬于多例設(shè)計(jì)模式,那么既然是多例設(shè)計(jì)模式,對(duì)于類之中就肯定有多種組成,包括屬性、方法、構(gòu)造方法,在枚舉之中也同樣可以定義以上的內(nèi)容,但是此處需要注意兩點(diǎn)問題:枚舉之中定義的構(gòu)造方法不能夠使用public聲明,如果沒有無參構(gòu)造,請(qǐng)手工調(diào)用構(gòu)造傳遞參數(shù);枚舉對(duì)象必須要放在首行,隨后才可以定義屬性、構(gòu)造、普通方法等結(jié)構(gòu)。范例:擴(kuò)充枚舉功能packagecom.yootk.demo;enumColor{

RED("紅色"),GREEN("綠色"),BLUE("藍(lán)色"); //定義枚舉對(duì)象,必須寫在首行

privateStringtitle; //屬性

privateColor(Stringtitle){ //構(gòu)造方法,不能使用public聲明

this.title=title; }

publicStringtoString(){ //覆寫toString()方法

return

this.title; }}public

classTestDemo{

public

static

voidmain(String[]args){

for(Colorc:Color.values()){ //取得全部枚舉對(duì)象 System.out.print(c+"、"); //直接輸出對(duì)象調(diào)用toString() } }}程序執(zhí)行結(jié)果:紅色、綠色、藍(lán)色、范例:枚舉實(shí)現(xiàn)接口packagecom.yootk.demo;interfaceIMessage{

publicStringgetTitle();}enumColorimplementsIMessage{ //實(shí)現(xiàn)接口

RED("紅色"),GREEN("綠色"),BLUE("藍(lán)色"); //定義枚舉對(duì)象,都是IMessage接口實(shí)例

privateStringtitle; //屬性

privateColor(Stringtitle){ //構(gòu)造方法,不能使用public聲明

this.title=title; }

publicStringgetTitle(){ //覆寫方法

return

this.title; }

publicStringtoString(){ //覆寫toString()方法

return

this.title; }}public

classTestDemo{

public

static

voidmain(String[]args){ IMessagemsg=Color.RED; //實(shí)例化接口對(duì)象 System.out.println(msg.getTitle()); }}程序執(zhí)行結(jié)果:紅色范例:在switch語句上使用枚舉packagecom.yootk.demo;enumColor{

RED,GREEN,BLUE;}public

classTestDemo{

public

static

voidmain(String[]args){ Colorc=Color.RED;

switch(c){ //支持枚舉判斷

case

RED: //判斷枚舉內(nèi)容 System.out.println("這是紅色!");

break;

case

GREEN: //判斷枚舉內(nèi)容 System.out.println("這是綠色!");

break;

case

BLUE: //判斷枚舉內(nèi)容 System.out.println("這是藍(lán)色!");

break; } }}程序執(zhí)行結(jié)果:這是紅色!范例:在類設(shè)計(jì)結(jié)構(gòu)中使用枚舉packagecom.yootk.demo;enumSex{

MALE("男"),FEMALE("女");

privateStringtitle;

privateSex(Stringtitle){

this.title=title; }

publicStringtoString(){

return

this.title; }}classMember{

privateStringname;

private

int

age;

privateSexsex; //定義性別屬性

publicMember(Stringname,int

age,Sexsex){

this.name=name;

this.age=age;

this.sex=sex; }

publicStringtoString(){

return

"姓名:"+this.name+",年齡:"+this.age+",性別:"+this.sex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論