版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目三數(shù)組與方法
相關(guān)詞匯:1、array
:數(shù)組2、element:元素3、row:行4、column
:列5、length
:長度6、dimension:維7、substring:字串8、subscript:下標(biāo)9、method:方法10、parameter:參數(shù)11、formalparameter:形參12、actualparameter:實(shí)參13、returnvalue:返回值14、default:缺省【項(xiàng)目描述】本項(xiàng)目介紹數(shù)組與方法的聯(lián)合使用。要求掌握數(shù)組的定義及應(yīng)用;方法的定義及應(yīng)用;數(shù)組作為參數(shù)的具體應(yīng)用?!救蝿?wù)分解】
本項(xiàng)目可分解為以下幾個任務(wù):1.數(shù)組的定義及使用。2.方法的定義及使用。3.數(shù)組參數(shù)。【任務(wù)描述】任務(wù)3-1:編寫程序,定義一個一維數(shù)組,給數(shù)組各元素賦值,并求數(shù)組元素的最大值和最小值;定義一個二維數(shù)組中biAarry,初始化數(shù)組并輸出數(shù)組的各元素。[跳至解題思路]【必備知識】1.一維數(shù)組的聲明及使用(1)一維數(shù)組的聲明與內(nèi)存的分配
如:intscore[];score=newint[10];除了用兩行來聲明并分配內(nèi)存給數(shù)組之外,也可以用較為簡潔的方式,把兩行縮成一行來編寫,其格式如下:數(shù)據(jù)類型
數(shù)組名[]=new數(shù)據(jù)類型[num];上述例子等價于如下寫法:intscore[]=newint[10](2)一維數(shù)組中元素的表示方法數(shù)組下標(biāo)的最小值為0,最大值為num-1。以一個score[10]的整型數(shù)組為例,score[0]代表第1個元素,score[1]代表第2個元素,score[9]為數(shù)組中的第10個元素(也就是最后一個元素)。示例1:一維數(shù)組的使用。01public
classExample3_1{02 public
static
voidmain(String[]args){03 inti;04 inta[];//聲明一整型數(shù)組a,此時僅開辟堆內(nèi)存空間05 a=new
int[3];//開辟棧內(nèi)存空間供整型數(shù)組a使用,其元素個數(shù)為306 for(i=0;i<3;i++)//輸出數(shù)組a07 System.out.print("a["+i+"]="+a[i]+"\t");08 System.out.println("\n數(shù)組長度是:"+a.length);//輸出數(shù)組長度09 }10}【運(yùn)行結(jié)果】a[0]=0 a[1]=0 a[2]=0 數(shù)組長度是:3(3)一維數(shù)組的初始化1)賦初值初始化數(shù)組如果想直接在聲明時就對數(shù)組賦初值,可以利用大括號完成。只要在數(shù)組的聲明格式后面再加上初值的賦值則可,如下面的格式所示:數(shù)據(jù)類型
數(shù)組名[]={初值0,初值1,…初值n};示例2:一維數(shù)組的初始化。01public
classExample3_2{02 public
static
voidmain(String[]args){03 inti;04 inta[]={15,29,38};//聲明一個整數(shù)數(shù)組a,并賦初值(初始化)05 for(i=0;i<a.length;i++)//輸出數(shù)組的內(nèi)容06 System.out.print("a["+i+"]="+a[i]+"\t");07 System.out.println("\n數(shù)組長度是:"+a.length);08 }09}【運(yùn)行結(jié)果】a[0]=15a[1]=29 a[2]=38 數(shù)組長度是:3示例分析:除了在聲明的同時為數(shù)組賦初值,也可以在程序中為某個特定的數(shù)組元素賦值。可以將程序和第4行更改成下面的程序片段:inta[]=newint[3];a[0]=15;a[1]=29;a[2]=38;2)用new初始化數(shù)組
2.二維數(shù)組的定義及使用(1)二維數(shù)組的聲明與內(nèi)存的分配1)其聲明與分配內(nèi)存的格式如下:數(shù)據(jù)類型
數(shù)組名[][];
//聲明二維數(shù)組格式1或數(shù)據(jù)類型[][]數(shù)組名;
//聲明二維數(shù)組格式2數(shù)組名=new數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)];//分配內(nèi)存給數(shù)組同樣,也可用下面的格式來聲明數(shù)組:數(shù)據(jù)類型
數(shù)組名[][]=new數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)];
3.字符數(shù)組:char[]ch1={'H,'e','l','l','o'};字符串中所包含的字符個數(shù)稱為字符串長度,如“Hello”的長度為5。要表示長度為50的字符串,雖然可以使用如下的字符數(shù)組:char[]ch1=newchar[50];但由于字符個數(shù)太多,致使數(shù)組元素太多,使用起來極其不方便。為此,Java提供了String類,通過建立String類的對象使用字符串特別方便。
4.字符串字符串是字符組成的序列,是編程中常用的數(shù)據(jù)類型。字符串可用來表示標(biāo)題、名稱和地址等。(1)字符串變量的聲明和初始化其格式如下:String字符串變量名;字符串變量名=newString();也可以將兩條語句合并為一條語句,格式如下:String字符串變量名=newString();
例如:Stringstr;str=newString();等價于:Stringstr=newString();(2)字符串賦值
分別為字符串變量s1、s2和s3賦值:s1=“people”;s2=s1;s3=“China”+s1;結(jié)果s2的值為“people”,s3的值為“Chinapeople”。其中運(yùn)算符“+”的作用是將前后兩個字符串連接起來。
(3)字符串的輸出例如:Stringstr=newString();str=“beautifulgirl!”;System.out.println(str);輸出結(jié)果為:
beautifulgirl!
示例4:代碼請參考Example3_4。重溫任務(wù)描述
【解題思路】任務(wù)3-1:
1.聲明一維數(shù)組,利用隨機(jī)函數(shù)給數(shù)組元素賦值。2.定義變量min和max,分別用于保存最小值和最大值,假定一開始最大值和最小值都是a[0]元素。3.利用for循環(huán),將a[1]~a[9]元素逐一和min、max進(jìn)行比較,一旦也更小或更大值,馬上置換當(dāng)前的最小、最大值。4.輸出max和min。5.聲明一個二維數(shù)組中biAarry并初始化。6.利用兩重循環(huán)輸出二維數(shù)組的各元素。【任務(wù)透析】publicclassClassDemo3_1Test{ publicstaticvoidmain(String[]args){ //隨機(jī)輸入一個整數(shù),計算一維數(shù)組中最大值、最小值 intm=Integer.parseInt(args[0]);//通過形參數(shù)組args[0]元素接收一個整數(shù)m inta[]=newint[m];//構(gòu)造一個有m個元素的一維數(shù)組a System.out.println("隨機(jī)生成的一維數(shù)組:");
for(inti=0;i<m;i++) { a[i]=(int)(100*Math.random()); System.out.println(a[i]+""); } intmin,max; min=a[0]; max=a[0]; for(inti=1;i<m;i++) { if(a[i]<min) min=a[i];
if(a[i]>max) max=a[i]; } System.out.println("\n此數(shù)組中最大值是:"+max); System.out.println("\n此數(shù)組中最小值是:"+min);
//定義并初始化二維數(shù)組biAarry
int[][]biAarry={{10,20},{3,4},{55,66},{41,42}}; //打印biAarry數(shù)組元素的內(nèi)容 System.out.println("\n二維數(shù)組biAarry的各個元素是:");
for(inti=0;i<4;i++) {
for(intj=0;j<2;j++) System.out.print(biAarry[i][j]+"\t"); System.out.println(); } }}本示例中,分別演示了一維數(shù)組和二維數(shù)組的使用。
實(shí)際上,在定義并初始化數(shù)組時,也可以只給部分元素賦值,沒有賦值的元素默認(rèn)為0?!菊n堂提問】在輸出數(shù)組元素時,能否不使用循環(huán)語句逐一元素輸出,而直接輸出數(shù)組名呢?在任務(wù)3-1中,如果在求一維數(shù)組最大值和最小值的同時,要求輸出最大值和最小值元素的下標(biāo),該如何實(shí)現(xiàn)呢?
【現(xiàn)場演練】
編程計算1~9的平方值,將結(jié)果保存在一個一維數(shù)組之中。任務(wù)二
方法的定義及使用
【任務(wù)描述】任務(wù)3-2:編寫程序,定義一個變量,并賦予初值,利用方法調(diào)用輸出所求的值。跳至解題思路【必備知識】
1.方法的定義
方法的基本組成部分包括以下四部分:返回值方法名參數(shù)列表方法主體
[格式3-1方法定義]:[修飾符]返回值類型
方法名稱(類型參數(shù)1,類型參數(shù)2,…){程序主體
程序語句; return表達(dá)式;}2.方法的調(diào)用調(diào)用方法,即執(zhí)行該方法。調(diào)用方法的形式如下:(1)方法表達(dá)式對于有返回值的方法作為表達(dá)式或表達(dá)式的一部分來調(diào)用,其形式為:方法名([實(shí)際參數(shù)表])
說明:
①實(shí)際參數(shù)表是傳遞給該方法的諸參數(shù),實(shí)際參數(shù)簡稱為實(shí)參。實(shí)參可以是常量、變量或表達(dá)式,相鄰的兩個實(shí)參之間用逗號分隔。
②方法調(diào)用的過程是,將實(shí)參傳遞給形參,然后執(zhí)行方法體,當(dāng)被調(diào)方法運(yùn)行結(jié)束后,從調(diào)用該方法的語句的下一句處繼續(xù)執(zhí)行。
③實(shí)參的個數(shù)、順序、類型和形參要一一對應(yīng)。
參數(shù)傳遞方式:1、值傳遞:指實(shí)參傳遞給形參的是一個值。其特點(diǎn)是:形參的改變不會影響實(shí)參。2、引用傳遞:(2)方法語句對無返回值的方法以獨(dú)立語句的方式調(diào)用,其形式如下:方法名([實(shí)際參數(shù)表]);
示例7:以方法表達(dá)式方式調(diào)用方法
代碼請參考Example3_7。示例8:有參方法,以方法語句方式調(diào)用。
代碼請參考Example3_8。示例9:無參方法,以方法語句方式調(diào)用。重溫任務(wù)描述【解題思路】
任務(wù)3-2:1.在main()方法中聲明所需的變量。2.要賦初始值的變量,先賦予它們初始值。3.方法調(diào)用。4.在main()方法外定義調(diào)用的方法。5、輸出所求的值?!救蝿?wù)透析】01
public
classClassDemo3_2Test{02 static
intsum(intx,inty,intz)03 {04 ints;05 s=x+y+z;06 return(s);07 }08 public
static
voidmain(String[]args){09 inta=10,b=20,c=30;10 intresult=sum(a,b,c);11 System.out.println("result="+result);12 }13}在main()方法第9行聲明了3個整型變量a,b,c,并分別賦予它們初始值為10,20,30。在第10行通過sum(a,b,c)調(diào)用方法sum(),實(shí)參為a,b,c,形參為x,y,z。在2-7行執(zhí)行方法sum(),首先將實(shí)參a的值傳遞給x,將實(shí)參b的值傳遞給y,將實(shí)參c的值傳遞給z,然后執(zhí)行sum()的方法體,求得3個整數(shù)的和為60,將結(jié)果賦給s,當(dāng)執(zhí)行return語句時,方法sum()結(jié)束,返回的值為60,并回到調(diào)用該方法的賦值語句,即第10行,將返回值60賦給變量。最后執(zhí)行輸出語句,輸出變量result的值。【現(xiàn)場演練】運(yùn)用方法的知識,求三個整數(shù)的最大值?方法的重載方法的重載就是在同一類中允許同時存在一個以上的同名方法,只要它們的參數(shù)個數(shù)或類型不同即可。在這種情況下,該方法就叫被重載了,這個過程稱為方法的重載。示例3-12:方法的重載
代碼請參考Example3_12。
參數(shù)傳遞方式:1、值傳遞:指實(shí)參傳遞給形參的是一個值。其特點(diǎn)是:形參的改變不會影響實(shí)參。int、float、double、char2、引用傳遞:指實(shí)參傳遞給形參的是一個地址(引用)。任務(wù)三
數(shù)組參數(shù)
【任務(wù)描述】
任務(wù)3-3:編寫程序,定義一個數(shù)組,并賦予初值,利用方法調(diào)用輸出所求的值。
跳至解題思路【必備知識】在Java中,允許方法調(diào)用的參數(shù)是數(shù)組。在使用數(shù)組參數(shù)時,應(yīng)該注意以下事項(xiàng):(1)在形參表中,數(shù)組名后的括號不能省略,括號個數(shù)和數(shù)組的維數(shù)相等。不需給出數(shù)組元素的個數(shù)。(2)在實(shí)參表中,數(shù)組名后不需括號。(3)數(shù)組名做實(shí)際參數(shù)時,傳遞的是地址,而不是值,即形參和實(shí)參具有相同的存儲單元。
示例13:展示一維數(shù)組參數(shù)傳遞地址的特性。代碼請參考Example3_13。示例14:展示二維數(shù)組參數(shù)傳遞地址的特性。代碼請參考Example3_14。綜合應(yīng)用:編寫一個sort()方法,將數(shù)組元素按大到小順序排序。在main()方法中調(diào)用,觀察方法調(diào)用前后輸出的結(jié)果。遞歸調(diào)用:方法自己調(diào)用自己。案例:把求1-100之和的程序改為用方法的遞歸調(diào)用來實(shí)現(xiàn)。遞歸調(diào)用時必須有一個明確的結(jié)束條件,要不斷改變傳入的數(shù)據(jù)(實(shí)參),才可以實(shí)現(xiàn)遞歸的調(diào)用。1+2+3+4+。。。。100=?100+99+98+。。。2+1=?sum(100)100+sum(99)+99+sum(98)+……..2+sum(1)1
【示例3-15】返回數(shù)組的方法。01public
classExample3_15{02 public
static
voidmain(String[]args){03 intA[][]={{10,20,30,40,50},{15,25,35,45,55}};04 intTest[][]=new
int[2][5];05 Test=add(A);06 for(inti=0;i<Test.length;i++){07 for(intj=0;j<Test[i].length;j++)08 System.out.print(Test[i][j]+"");09 System.out.print("\n");10 }11 }12 public
static
int[][]add(intarr[][]){14for(int
i=0;i<arr.length;i++)15
for(int
j=0;j<arr[i].length;j++)16 arr[i][j]+=10; 17return
arr; 18 }19
}第5行中將一個二維數(shù)組傳入add()方法中,在第12行賦值add()是可接收二維數(shù)組,且返回類型是二維的整型數(shù)組,第16行是完成了在循環(huán)內(nèi)將數(shù)組元素值加10的操作,而運(yùn)算之后的結(jié)果再由第17行的return語句返回。重溫任務(wù)描述【解題思路】
任務(wù)3-3:
1.在main()方法中定義一維數(shù)組test。2.用靜
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)獨(dú)棟總部出售合同范例
- 簽約合同范例
- 勞務(wù)派遣進(jìn)廠合同范例
- 2025簡單版重慶購房合同
- 工程預(yù)算施工合同范例
- 勞務(wù)總包大合同范例
- 土地簽約合同范例
- 橋梁木工班組勞務(wù)合同范例
- 快速簽約洽談合同范例
- 銅仁職業(yè)技術(shù)學(xué)院《地震地質(zhì)綜合解釋》2023-2024學(xué)年第一學(xué)期期末試卷
- 產(chǎn)品可靠性測試培訓(xùn)
- 初一分班英語試卷(含答案)
- 現(xiàn)代漢語詞典電子版
- 2023廣東珠海市統(tǒng)計局招聘合同制職員1人(共500題含答案解析)筆試歷年難、易錯考點(diǎn)試題含答案附詳解
- 跨境電商物流與供應(yīng)鏈管理PPT全套完整教學(xué)課件
- 四年級上冊英語說課稿-Module 7 Unit 1 Did you take Amy's doll|外研社(一起)
- 教師資格面試-75篇結(jié)構(gòu)化逐字稿
- 內(nèi)鏡中心減少患者內(nèi)鏡診療等候時間品管圈PDCA匯報
- 學(xué)習(xí)當(dāng)代大學(xué)生國防教育的體會和意義
- CDNL-MR08 高溫試驗(yàn)測量方法 不確定度評定報告 V1.0
- 康復(fù)中心工作匯報專家講座
評論
0/150
提交評論