《跨平臺(tái)程序設(shè)計(jì)語(yǔ)言》課件-第5章 數(shù)組、字符串和枚舉_第1頁(yè)
《跨平臺(tái)程序設(shè)計(jì)語(yǔ)言》課件-第5章 數(shù)組、字符串和枚舉_第2頁(yè)
《跨平臺(tái)程序設(shè)計(jì)語(yǔ)言》課件-第5章 數(shù)組、字符串和枚舉_第3頁(yè)
《跨平臺(tái)程序設(shè)計(jì)語(yǔ)言》課件-第5章 數(shù)組、字符串和枚舉_第4頁(yè)
《跨平臺(tái)程序設(shè)計(jì)語(yǔ)言》課件-第5章 數(shù)組、字符串和枚舉_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.字符串介紹第5章數(shù)組、字符串和枚舉什么是字符串字符串:字符串是字符的序列,它是組織字符的基本數(shù)據(jù)結(jié)構(gòu),從某種程度上來(lái)說(shuō)有些類似于字符的數(shù)組。在Java中,字符串被當(dāng)作對(duì)象來(lái)處理,是String類的實(shí)例。字符串常量使用雙引號(hào)括住的一串字符,比如:Java編譯器自動(dòng)為每一個(gè)字符串常量生成一個(gè)String類的實(shí)例,因此可以用字符串常量直接初始化一個(gè)String對(duì)象,如:"Helloworld!"Strings="Helloworld!";創(chuàng)建字符串通過(guò)使用String類的構(gòu)造方法來(lái)創(chuàng)建字符串:String共有11個(gè)構(gòu)造方法。常用的幾個(gè)是:例如:注意:String類是不可改變的,所以一旦創(chuàng)建了String對(duì)象,那它的值就無(wú)法改變了publicString(); //創(chuàng)建一個(gè)空的字符串publicString(Strings); //用已有字符串創(chuàng)建新的string(最常用)publicString(StringBufferbuf); //用StringBuffer對(duì)象的內(nèi)容初始化新的StringpublicString(charvalue[]); //用已有的字符數(shù)組初始化新的stringStrings=newString("Helloworld!");字符串常用方法String類位于java.lang包中,java會(huì)默認(rèn)的導(dǎo)入java.lang包,所以使用java.lang包的類時(shí),不需要顯示的import類,String類具有豐富的方法,其中比較常用的有:在Java中,equals()方法用于比較兩個(gè)字符串的內(nèi)容是否相等,而“==”用于比較兩個(gè)字符串的引用是否相等。字符串比較上面的代碼中,s1和s2都是直接賦值的字符串常量,它們的引用指向同一個(gè)字符串對(duì)象。s3是通過(guò)new關(guān)鍵字創(chuàng)建的新的字符串對(duì)象,它的引用指向一個(gè)新的字符串對(duì)象。當(dāng)我們使用equals()方法比較s1和s2、s1和s3時(shí),返回的結(jié)果是true,因?yàn)樗鼈兊膬?nèi)容都相等。當(dāng)使用“==”比較s1和s2、s1和s3時(shí),s1和s2的引用相等,所以返回true,而s1和s3的引用不相等,所以返回false。Strings1="Hello";Strings2="Hello";Strings3=newString("Hello");

System.out.println(s1.equals(s2)); //trueSystem.out.println(s1.equals(s3)); //trueSystem.out.println(s1==s2); //trueSystem.out.println(s1==s3); //false連接字符串String類提供了連接兩個(gè)字符串的方法:返回string2連接string1的新字符串。也可以對(duì)字符串常量使用concat()方法,如:更常用的是使用'+'操作符來(lái)連接字符串,如:結(jié)果如下:string1.concat(string2);"我的名字是".concat("張三");"Hello,"+"world"+"!""Hello,world!"StringBuilder類和StringBuffer類String類對(duì)象的長(zhǎng)度和內(nèi)容賦值后是不能被改變的、或者被附加新的子串;盡管可以用“+”的方式把子串附加到String對(duì)象的原串中,如在例中的StringtoHexString(byte[]b)方法:publicstaticStringtoHexString(byte[]b){Stringa="[";for(inti=0;i<b.length;i++){Stringhex=Integer.toHexString(b[i]&0xFF);//保留1字節(jié)if(hex.length()==1){hex='0'+hex;}a=a+((i==0)?(hex):(","+hex));}a=a+"]";returna.toUpperCase();}程序中字符串對(duì)象a初值賦給“[”,每次執(zhí)行第08行時(shí),又會(huì)在原串的基礎(chǔ)上附加新的子串,生成新的對(duì)象實(shí)例;這種方式能夠正確運(yùn)行,但是每次執(zhí)行后會(huì)產(chǎn)生新的String對(duì)象實(shí)例,占用新的存儲(chǔ)空間。類似這種頻繁追加操作,勢(shì)必在堆中產(chǎn)生大量的實(shí)例;如果大量使用,可能會(huì)導(dǎo)致堆空間緊張;此外,每次生成新的對(duì)象需要時(shí)間,也會(huì)影響運(yùn)行效率;從空間和時(shí)間考慮,建議避免使用。StringBuilder類和StringBuffer類在面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí),最好采用能夠重復(fù)使用的對(duì)象。對(duì)于串對(duì)象,Java引入兩個(gè)可以重復(fù)使用的串類,StringBuilder和StringBuffer類。這兩類創(chuàng)建的串對(duì)象后,它們的內(nèi)容允許被改變,也就是說(shuō),對(duì)象可以重復(fù)修改、使用。兩者的區(qū)別是:StringBuffer類是線程安全的、而StringBuilder是線程不安全的,因?yàn)榫€程安全是需要犧牲性能的,因此,線程安全者性能較差,線程不安全者則性能較好。所謂“線程安全”,主要體現(xiàn)兩點(diǎn):第一,在多個(gè)線程對(duì)同一個(gè)實(shí)例訪問(wèn)時(shí)不會(huì)相互干擾,不會(huì)產(chǎn)生沖突;其次,是每個(gè)線程有自己的字段,這些不會(huì)在多個(gè)線程間共享。更深入的理解將在后續(xù)多線程章節(jié)的課程介紹。StringBuilder類和StringBuffer類StringBuilder():用不帶參數(shù)構(gòu)建StringBuilder對(duì)象;StringBuilder(CharSequenceseq):用CharSequence作為參數(shù)構(gòu)建StringBuilder對(duì)象;StringBuilder(inti):用int數(shù)據(jù)作為參數(shù)構(gòu)建StringBuilder對(duì)象;StringBuilder(Stringstr):用String對(duì)象作為參數(shù)構(gòu)建StringBuilder對(duì)象。StringBuilder類的方法見Java的API文檔。StringBuilder類和StringBuffer類的構(gòu)造方法類似。在這里僅介紹StringBuilder類的構(gòu)造方法:StringBuilder類和StringBuffer類publicstaticStringtoHexString0(byte[]b){StringBuildera=newStringBuilder("[");//創(chuàng)建一個(gè)初值為“[”的StringBuilder對(duì)象aStringBuilderhex=newStringBuilder("");//創(chuàng)建一個(gè)帶空串的StringBuilder對(duì)象hex

for(inti=0;i<b.length;i++){ hex.append((Integer.toHexString(b[i]&0xFF)).toUpperCase());//保留1字節(jié),轉(zhuǎn)換成大寫字母if(hex.length()==1)hex.insert(0,"0");if(i==0)a.append(hex);//調(diào)用a.append()方法追加到hex對(duì)象序列的后面elsea.append(","+hex);//調(diào)用hex.append()方法追加到hex對(duì)象序列的后面hex.delete(0,hex.length());//調(diào)用hex.delete()方法把原先hex中的序列全部刪除

}a.append("]");returna.toString();//由于a是StringBuilder類對(duì)象,而返回的是String類,把a(bǔ)中序列轉(zhuǎn)換成String類}應(yīng)用StringBuilder類,可以重寫上述例中的StringtoHexString(byte[]b)方法,更名為toHexString0(byte[]b),仍然放在StringMethod01.Java源程序中:2.1數(shù)組的使用第5章數(shù)組、字符串和枚舉什么是數(shù)組數(shù)組:數(shù)組(array)是一種最簡(jiǎn)單的復(fù)合數(shù)據(jù)類型,它是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素具有相同的數(shù)據(jù)類型,可以用一個(gè)統(tǒng)一的數(shù)組名和不同的下標(biāo)來(lái)確定數(shù)組中唯一的元素。根據(jù)數(shù)組的維度,可以將其分為一維數(shù)組、二維數(shù)組和多維數(shù)組等。什么是數(shù)組在Java中數(shù)組的下標(biāo)是從零開始的,很多計(jì)算機(jī)語(yǔ)言的數(shù)組下標(biāo)也從零開始。Java數(shù)組下標(biāo)訪問(wèn)運(yùn)算符是中括號(hào),如intArray[0],表示訪問(wèn)intArray數(shù)組的第一個(gè)元素,0是第一個(gè)元素的下標(biāo)。Java中的數(shù)組本身是引用數(shù)據(jù)類型,它的長(zhǎng)度屬性是length。數(shù)組:所有的數(shù)組都是由連續(xù)的內(nèi)存位置組成的。最低的地址對(duì)應(yīng)第一個(gè)元素,最高的地址對(duì)應(yīng)最后一個(gè)元素。Numbers[0]NumBers[1]Numbers[2]Numbers[3]……FirstElementLastElement聲明數(shù)組在java中聲明一個(gè)數(shù)組,可以使用下面的語(yǔ)法:datatype用于指定被存儲(chǔ)在數(shù)組中的元素的類型。arrayName指定數(shù)組的名稱。示例:注意:Java語(yǔ)言中聲明數(shù)組時(shí)不能指定其長(zhǎng)度(數(shù)組中元素的數(shù)),例如:inta[5];是錯(cuò)誤的datatype[]arrayName;或者datatypearrayName[];inta[];int[]b;String[]c;初始化數(shù)組聲明一個(gè)數(shù)組不會(huì)在內(nèi)存中初始化數(shù)組。當(dāng)初始化數(shù)組變量時(shí),可以賦值給數(shù)組。數(shù)組是一個(gè)引用類型,所以需要使用new關(guān)鍵字來(lái)創(chuàng)建數(shù)組的實(shí)例。動(dòng)態(tài)初始化:數(shù)組聲明且為數(shù)組元素分配空間與賦值的操作分開進(jìn)行int[]arr=newint[3];arr[0]=3;arr[1]=6;arr[2]=9;intarr[]=newint[]{3,6,9};//或int[]arr={3,6,9};//定義數(shù)組長(zhǎng)度為0,數(shù)組的長(zhǎng)度可以為0int[]a=newint[]{};int[]a={};靜態(tài)初始化

:在定義數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值使用數(shù)組聲明并用運(yùn)算符new為之分配空間后,才可以引用數(shù)組中的每個(gè)元素?cái)?shù)組元素的引用方式:數(shù)組名[數(shù)組元素下標(biāo)]數(shù)組元素下標(biāo)可以是整型常量或整型表達(dá)式。如a[3],b[i],c[6*i]數(shù)組元素下標(biāo)從0開始;長(zhǎng)度為n的數(shù)組合法下標(biāo)取值范圍:0—>n-1,即[0,length)每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度注意:數(shù)組一旦初始化,其長(zhǎng)度是不可變的使用數(shù)組示例:聲明并初始化長(zhǎng)度為10的整型數(shù)組,遍歷賦值和輸出成績(jī)。Scannerinput=newScanner(System.in);//定義長(zhǎng)度為10的整型一維數(shù)組int[]arr=newint[10];//遍歷輸入成績(jī),索引范圍0~arr.length-1for(inti=0;i<arr.length;i++){arr[i]=input.nextInt();}//遍歷輸出成績(jī),索引范圍0~arr.length-1for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}總結(jié)1.一致性:數(shù)組只能保存相同數(shù)據(jù)類型元素,元素的數(shù)據(jù)類型可以是任何相同的數(shù)據(jù)類型。2.有序性:數(shù)組中的元素是有序的,通過(guò)下標(biāo)訪問(wèn)。3.不可變性:數(shù)組一旦初始化,則長(zhǎng)度(數(shù)組中元素的個(gè)數(shù))不可變。數(shù)組特性:在計(jì)算機(jī)語(yǔ)言中數(shù)組是非常重要的集合類型,大部分計(jì)算機(jī)語(yǔ)言中數(shù)組具有如下三個(gè)基本特性:總結(jié)數(shù)組可以是一維數(shù)組、二維數(shù)組或多維數(shù)組。數(shù)值數(shù)組元素的默認(rèn)值為0,而引用元素的默認(rèn)值為null。數(shù)組的索引從0開始,如果數(shù)組有n個(gè)元素,那么數(shù)組的索引是從0到(n-1)。數(shù)組元素可以是任何類型,包括數(shù)組類型。數(shù)組類型是從抽象基類Array派生的引用類型。數(shù)組特點(diǎn):2.2數(shù)組常用算法第5章數(shù)組、字符串和枚舉數(shù)組的遍歷在Java中,通常使用循環(huán)結(jié)構(gòu)來(lái)遍歷數(shù)組。常見的循環(huán)結(jié)構(gòu)包括for循環(huán)和foreach循環(huán)。使用for循環(huán)遍歷數(shù)組for循環(huán)適用于已知需要遍歷的次數(shù)的情況。以下是使用for循環(huán)遍歷數(shù)組的示例代碼:在上述代碼中,通過(guò)array.length獲取數(shù)組的長(zhǎng)度,然后使用for循環(huán)遍歷數(shù)組。循環(huán)變量i從0開始遞增,直到i的值等于數(shù)組長(zhǎng)度減1。for(inti=0;i<array.length;i++){//訪問(wèn)數(shù)組中的元素并進(jìn)行相應(yīng)的操作System.out.println(array[i]);}數(shù)組的遍歷使用foreach循環(huán)遍歷數(shù)組foreach循環(huán)適用于不需要使用索引值的情況。以下是使用foreach循環(huán)遍歷數(shù)組的示例代碼:在上述代碼中,通過(guò)intnum:array的語(yǔ)法,將數(shù)組array中的每個(gè)元素賦值給變量num,然后對(duì)num進(jìn)行相應(yīng)的操作。for(intnum:array){//訪問(wèn)數(shù)組中的元素并進(jìn)行相應(yīng)的操作System.out.println(num);}冒泡排序從第一個(gè)元素開始,兩兩進(jìn)行比較,將較大的數(shù)往后移,這樣就將最大的數(shù)放在了最后。第二輪將第二大的數(shù)放在倒數(shù)第二個(gè),以次類推,將元素按大小順序排序。原理:冒泡排序練習(xí):已知一組數(shù):{3,44,38,5,47,15,36,26,27,2,46,4,19,50,48},請(qǐng)按從小到大的順序輸出。//聲明初始化數(shù)組(靜態(tài)初始化)int[]arr={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};//兩兩比較,每次得到最大值,并移動(dòng)到最右邊。//因?yàn)樽詈笠淮伪容^得出最后兩個(gè)數(shù)值的位置,則進(jìn)行l(wèi)ength-1輪比較for(inti=0;i<arr.length-1;i++){for(intj=0;j<arr.length-1-i;j++){//比較當(dāng)前j索引值與下一個(gè)索引(j+1)值的大小if(arr[j]>arr[j+1]){inttemp=arr[j]; //定義臨時(shí)變量存儲(chǔ)j索引的值arr[j]=arr[j+1]; //將(j+1)索引的值賦值到j(luò)索引元素arr[j+1]=temp; //將臨時(shí)變量temp(存儲(chǔ)了j索引的值)賦值到(j+1)索引元素}}}//遍歷輸出數(shù)組for(inti=0;i<arr.length;i++)System.out.print(arr[i]+"、");數(shù)組查找在Java編程中,數(shù)組是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)一系列相同類型的元素。當(dāng)我們需要查找數(shù)組中的某個(gè)元素時(shí),可以使用不同的算法和方法來(lái)實(shí)現(xiàn)。冒泡排序練習(xí):已知一組數(shù):{1,2,3,4,5},查找輸入目標(biāo)元素是否存在。//初始化數(shù)組int[]array={1,2,3,4,5};Scannerscanner=newScanner(System.in); //創(chuàng)建輸入對(duì)象inttarget=scanner.nextInt(); //輸入需要查找的目標(biāo)元素//遍歷數(shù)組booleanfound=false;for(inti=0;i<array.length;i++){if(array[i]==target){found=true;break;}}//返回結(jié)果if(found)System.out.println("目標(biāo)元素找到了!");elseSystem.out.println("目標(biāo)元素未找到!");二分查找在有序數(shù)組中尋找一個(gè)元素x,先用數(shù)組的中間元素和x比較,如果相等則返回,x小于中間元素的話就在左半?yún)^(qū)尋找,大于中間元素就在右半?yún)^(qū)尋找,此時(shí)也可以用半?yún)^(qū)的中間元素進(jìn)行比較,進(jìn)一步縮小尋找范圍,直到找到,可以采用遞歸的思想。原理:二分查找利用二分查找返回元素在有序數(shù)組中的索引,沒找到則返回-1。publicstaticintgetIndex(int[]arr,intnum){intminIndex=0;intmaxIndex=arr.length-1;intmidIndex=(minIndex+maxIndex)/2;while(minIndex<=maxIndex){if(num==arr[midIndex]){returnmidIndex;}elseif(num>arr[midIndex]){minIndex=midIndex+1;}else{maxIndex=midIndex-1;}midIndex=(maxIndex+minIndex)/2;}return-1;}2.3多維數(shù)組第5章數(shù)組、字符串和枚舉什么是多維數(shù)組在Java中,從數(shù)組底層的運(yùn)行機(jī)制來(lái)看,其實(shí)沒有多維數(shù)組。多維數(shù)組可以看成以數(shù)組為元素的數(shù)組。Java中可以有二維、三維、甚至更多維數(shù)組,但是實(shí)際開發(fā)中用的非常少,最多到二維數(shù)組。多維數(shù)組:二維數(shù)組介紹二維數(shù)組的本質(zhì)其實(shí)就是一維數(shù)組,只不過(guò)每個(gè)元素又是一個(gè)一維數(shù)組。在java中聲明一個(gè)二位數(shù)組,可以使用下面的語(yǔ)法:“[][]”用于表明定義了一個(gè)二維數(shù)組,通過(guò)多個(gè)下標(biāo)進(jìn)行數(shù)據(jù)訪問(wèn):二維數(shù)組的初始化主要分為靜態(tài)初始化和動(dòng)態(tài)初始化。datatype[][]arrayName;或者datatypearrayName[][];數(shù)組名[數(shù)組元素下標(biāo)][數(shù)組元素下標(biāo)]二維數(shù)組:二維數(shù)組介紹在創(chuàng)建數(shù)組時(shí)不直接指定數(shù)據(jù)元素個(gè)數(shù),而是直接將具體的數(shù)據(jù)內(nèi)容進(jìn)行指定。publicclassTest{publicstaticvoidmain(String[]args){int[][]a={{1,2,3},{3,4},{3,5,6,7}};System.out.println(a[2][3]);}}靜態(tài)初始化:二維數(shù)組介紹在創(chuàng)建數(shù)組時(shí)不直接指定數(shù)據(jù)元素個(gè)數(shù),而是直接將具體的數(shù)據(jù)內(nèi)容進(jìn)行指定。importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args){int[][]a=newint[3][];//a[0]={1,2,5};//錯(cuò)誤,沒有聲明類型就初始化a[0]=newint[]{1,2}; a[1]=newint[]{2,2}; a[2]=newint[]{2,2,3,4}; System.out.println(a[2][3]); System.out.println(Arrays.toString(a[0]));System.out.println(Arrays.toString(a[1])); System.out.println(Arrays.toString(a[2]));}}運(yùn)行結(jié)果:動(dòng)態(tài)初始化:二維數(shù)組介紹練習(xí):創(chuàng)建一個(gè)二維數(shù)組存儲(chǔ)兩個(gè)班的成績(jī),每班10人,請(qǐng)遍歷賦值和輸出成績(jī)。Scannerinput=newScanner(System.in);//定義二維數(shù)組int[][]arr=newint[2][10];//遍歷輸入成績(jī),索引范圍0~arr.length-1for(inti=0;i<arr.length;i++){//得到一維數(shù)組int[]arr_1=arr[i];//遍歷一維數(shù)組,索引范圍0~arr_1.length-1for(intj=0;j<arr_1.length;j++){arr[i][j]=input.nextInt();}}//遍歷輸出成績(jī),索引范圍0~arr.length-1for(inti=0;i<arr.length;i++){//得到一維數(shù)組int[]arr_1=arr[i];//遍歷一維數(shù)組,索引范圍0~arr_1.length-1for(intj=0;j<arr_1.length;j++){System.out.print(arr[i][j]+"\t");}//換行System.out.print("\n");}實(shí)現(xiàn)代碼1實(shí)現(xiàn)代碼2Arrays類的使用JDK中提供了一個(gè)專門用于操作數(shù)組的工具類,即Arrays類,位于java.util包中。Arrays類的使用Arrays類提供了一些列方法來(lái)操作數(shù)組,如排序、復(fù)制、比較、填充等,用戶直接調(diào)用這些方法即可不需要自己編碼實(shí)現(xiàn),降低了開發(fā)難度。java.util.Arrays是一個(gè)與數(shù)組相關(guān)的工具類,里面提供了大量靜態(tài)方法,用來(lái)事項(xiàng)數(shù)組常見的操作。Arrays類的使用3.枚舉介紹第5章數(shù)組、字符串和枚舉什么是枚舉Java枚舉(Enum)是一種特殊的數(shù)據(jù)類型,它是一組預(yù)定義的常量,每個(gè)常量都有一個(gè)名稱和一個(gè)值。枚舉類型在Java中被廣泛使用,它可以用來(lái)代替常量、標(biāo)志位、狀態(tài)碼等,使代碼更加清晰、易讀和易維護(hù)。在日常生活中,經(jīng)常遇到一些數(shù)據(jù),如一個(gè)星期只有7天、一年有12個(gè)月、交叉路口的信號(hào)燈只有紅綠黃3中顏色等等,這些數(shù)據(jù)被稱為可枚舉數(shù)據(jù)。枚舉:枚舉的使用在Java中,可以通過(guò)關(guān)鍵字enum來(lái)定義枚舉類型。枚舉類型的定義格式如下:其中EnumName是枚舉類型的名稱Constant1、Constant2、Constant3等是枚舉類型的常量。每個(gè)枚舉常量都有一個(gè)名稱和一個(gè)值,枚舉常量的名稱通常采用大寫字母命名,多個(gè)單詞之間用下劃線分隔。enumEnumName{Constant1,Constant2,Constant3,...}定義枚舉類型:枚舉的使用例如:可以定義一個(gè)月份的Month枚舉類:例如:定義一個(gè)星期的Weekday枚舉類:publicenumMonth{//索引值January,February,March,April,May,June,July,August,September,October,November,December}publicenumWeekday{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday;}定義枚舉類型:訪問(wèn)枚舉常量:枚舉的使用在Java中,可以通過(guò)枚舉類型的名稱來(lái)訪問(wèn)枚舉常量。例如,一年四個(gè)季節(jié)Season枚舉,可以通過(guò)如下方式來(lái)訪問(wèn)枚舉常量:Weekday.Monday表示W(wǎng)eekday枚舉類型中的Monday常量。Weekdaymonday=Weekday.Monday;枚舉的使用枚舉類型可以定義方法,這些方法可以在枚舉常量上調(diào)用。例如,可以在Weekday枚舉類型中定義一個(gè)isWeekend方法來(lái)判斷當(dāng)前枚舉常量是否為周末:在上面的例子中,通過(guò)在枚舉常量后面定義方法,可以在每個(gè)枚舉常量上調(diào)用這個(gè)方法。例如,可以通過(guò)Weekday.Saturday.isWeekend()來(lái)判斷Saturday是否為周末。enumWeekday{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday;

publicbooleanisWeekend(){returnthis==Saturday||this==Sunday;}}枚舉方法:枚舉的使用枚舉類型也可以定義構(gòu)造器,這些構(gòu)造器只能在枚舉常量的定義中被調(diào)用,并且只能用來(lái)初始化枚舉常量的值。例如,可以在Weekday枚舉類型中定義一個(gè)帶參數(shù)的構(gòu)造器來(lái)設(shè)置枚舉常量的值:enumWeekday{Monday("星期一"),Tuesday("星期二"),Wednesday("星期三"),Thursday("星期四"),Friday("星期五"),Saturday("星期六"),Sunday("星期日");

privateStringvalue;privateWeekday(Stringvalue){this.value=value;}publicStringgetValue(){returnvalue;}}枚舉構(gòu)造器:枚舉的使用例如,可以在Weekday枚舉類型中定義一個(gè)帶參數(shù)的構(gòu)造器來(lái)設(shè)置枚舉常量的值:在上面的例子中,通過(guò)在枚舉常量后面定義構(gòu)造器,可以在枚舉常量的定義中為枚舉常量設(shè)置值。例如,可以通過(guò)Weekday.Monday.getValue()來(lái)獲取Monday的值。枚舉構(gòu)造器:enumWeekday{Monday("星期一"),Tuesday("星期二"),Wednesday("星期三"),Thursday("星期四"),Friday("星期五"),Saturday("星期六"),Sunday("星期日");

privateStringvalue;privateWeekday(Stringvalue){this.value=value;}publicStringgetValue(){returnvalue;}}枚舉的練習(xí)練習(xí):假設(shè)我們有一個(gè)游戲,游戲中有三個(gè)角色:戰(zhàn)士、法師和牧師。每個(gè)角色都有自己的屬性:血量、攻擊力和防御力??梢允褂妹杜e類型來(lái)表示這三個(gè)角色。枚舉的練習(xí)publicenumRole{WARRIOR("戰(zhàn)士",100,50,30), //枚舉常量:WARRIOR

MAGE("法師",80,70,20), //枚舉常量:MAGE

PRIEST("牧師",60,30,50); //枚舉常量:PRIEST

privateStringname;

//角色名稱privateinthp;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論