Java語言程序設(shè)計(jì)(第2版)丁振凡第4章_第1頁
Java語言程序設(shè)計(jì)(第2版)丁振凡第4章_第2頁
Java語言程序設(shè)計(jì)(第2版)丁振凡第4章_第3頁
Java語言程序設(shè)計(jì)(第2版)丁振凡第4章_第4頁
Java語言程序設(shè)計(jì)(第2版)丁振凡第4章_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.聲明數(shù)組

格式1:數(shù)組元素類型數(shù)組名[];格式2:數(shù)組元素類型[]數(shù)組名;其中,數(shù)組元素的類型可以是根本類型,也可以是類或接口。例如,要保存某批學(xué)生的成績(jī),可以定義一個(gè)數(shù)組score,聲明如下:intscore[];或者int[]score;一維數(shù)組與數(shù)學(xué)上的數(shù)列有著很大的相似性。a1,a2,a3…特點(diǎn)也是元素名字相同,下標(biāo)不同。創(chuàng)立一維數(shù)組需要以下三個(gè)步驟4.1數(shù)組

2.創(chuàng)立數(shù)組空間給已聲明的數(shù)組分配空間:

數(shù)組名=new數(shù)組元素類型[元素個(gè)數(shù)];

例如,score=newint[10];score[0]0

score[1]0

score[2]0

score[3]0

score[4]0

score[5]0

score[6]0

score[7]0

score[8]0

score[9]0在聲明數(shù)組的同時(shí)給數(shù)組規(guī)定空間,兩步合并。例如:intscore[]=newint[10];//創(chuàng)立同時(shí)聲明3.創(chuàng)立數(shù)組元素并初始化格式如下:格式1:類型

數(shù)組名[]={初值表};格式2:類型

數(shù)組名[]=new類型[]{初值表};例如:

intscore[]={1,2,3,4,5,6,7,8,9,10};intscore[]=newint[]{1,2,3,4,5,6,7,8,9,10};

score.length

指明數(shù)組score的長(zhǎng)度。例4-1求10個(gè)學(xué)生的平均成績(jī)(未完〕publicclassEx4_1{publicstaticvoidmain(Stringargs[]){intscore[]=newint[10];

for(intk=0;k<score.length;k++){score[k]=(int)(Math.random()*101);System.out.print(score[k]+"\t");//輸出數(shù)組元素}();學(xué)生的平均成績(jī)(續(xù)〕

/*以下計(jì)算輸出平均成績(jī)*/intsum=0;for(intk=0;k<score.length;k++)sum+=score[k];System.out.println("平均成績(jī)?yōu)椋?+sum/10);}}特殊for循環(huán)for(元素類型循環(huán)變量名:數(shù)組名){循環(huán)體}求數(shù)組所有元素之和可改寫為:

for(intx:score)sum+=x;

其中,x的取值隨循環(huán)從score[0],score[1],…,score[9]變化。例4-2將一維數(shù)組元素按由小到大排列publicclassTestSort{publicstaticvoidmain(Stringarge[]){inta[]={4,6,3,8,5,3,7,1,9,2};intn=a.length;System.out.println("排序前…");for(intk=0;k<n;k++)System.out.print(""+a[k]);System.out.println();4385371926for(inti=0;i<n-1;i++)for(intj=i+1;j<n;j++)if(a[i]>a[j]){/*交換a[i]和a[j]*/inttemp=a[i];a[i]=a[j];a[j]=temp;}System.out.println("排序后…");for(intk=0;k<n;k++)System.out.print(""+a[k]);}}Arrays類Arrays類封裝了對(duì)數(shù)組進(jìn)行操作的一系列靜態(tài)方法。利用Arrays類的sort方法可方便地對(duì)數(shù)組排序。例如:java.util.Arrays.sort(a);//作用等價(jià)于上面程序紅色局部利用Arrays類的toString()方法可以將數(shù)組轉(zhuǎn)化為字符串的形式。例如:System.out.print(java.util.Arrays.toString(a));//將a數(shù)組轉(zhuǎn)化為串輸出1.二維數(shù)組聲明格式1:數(shù)組元素類型數(shù)組名[][];格式2:數(shù)組元素類型[][]數(shù)組名;例如:inta[][];2.

創(chuàng)立二維數(shù)組空間

〔1〕直接為每一維分配空間,如:inta[][]=newint[2][3];〔2〕從最高維開始,按由高到低的順序分別為每一維分配空間。如:inta[][]=newint[2][];a[0]=newint[3];a[1]=newint[4];二維數(shù)組看作是數(shù)組的數(shù)組,不要求二維數(shù)組每一維的大小相同二維數(shù)組中求數(shù)組長(zhǎng)度要獲取數(shù)組的行數(shù),可以通過如下方式獲得:數(shù)組名.length數(shù)組的列數(shù)那么要先確定行,再通過如下方式獲取列數(shù):數(shù)組名[行標(biāo)].length例4-3二維數(shù)組動(dòng)態(tài)創(chuàng)立例如publicclassArrayOfArraysDemo2{publicstaticvoidmain(String[]args){int[][]aMatrix=newint[4][];for(inti=0;i<aMatrix.length;i++){aMatrix[i]=newint[i+1];for(intj=0;j<aMatrix[i].length;j++)aMatrix[i][j]=i+j;}for(inti=0;i<aMatrix.length;i++){for(intj=0;j<aMatrix[i].length;j++)System.out.print(aMatrix[i][j]+"");System.out.println();}}}3.創(chuàng)立數(shù)組元素并初始化元素是根本類型,系統(tǒng)將按默認(rèn)規(guī)那么賦初值。元素類型為其它引用類型,那么其所有元素為未賦初值狀態(tài)〔null〕。在數(shù)組定義時(shí)同時(shí)進(jìn)行初始化,如:inta[][]={{1,2,3},{4,5,6}};intb[][]={{1,2},{4,5,6}};更為常見的做法是在數(shù)組定義后通過循環(huán)語句給數(shù)組賦值。4.2.1方法聲明修飾符1...返回值類型方法名(形參表)[throws異常列表]{

方法體各語句;}

形式參數(shù)列表的格式如下:

類型1參數(shù)名1,類型2參數(shù)名2,...

return返回值必須與方法頭定義的返回類型相匹配return表達(dá)式;//方法返回結(jié)果為表達(dá)式的值return;

//用于無返回值的方法退出4.2.2方法調(diào)用實(shí)參的個(gè)數(shù)、類型、順序要與形參對(duì)應(yīng)一致。調(diào)用的執(zhí)行過程是:首先將實(shí)參傳遞給形參,然后執(zhí)行方法體。得到方法結(jié)果;程序從調(diào)用該方法的下一個(gè)語句繼續(xù)執(zhí)行。形式:方法名〔實(shí)際參數(shù)表〕

publicclassEx4_4{/*求n!的方法fac(n)*/publicstaticlongfac(intn){longres=1;for(intk=2;k<=n;k++)res=res*k;returnres;}例4-4編寫求階乘的方法,并利用求階乘的方法實(shí)現(xiàn)一個(gè)求組合的方法

返回結(jié)果要符合方法頭定義的要求/*求n個(gè)中取m個(gè)的組合方法*/publicstaticlongcom(intn,

intm){returnfac(n)/(fac(n-m)*fac(m));}publicstaticvoidmain(Stringargs[]){for(intn=0;n<=3;n++){for(intm=0;m<=n;m++)System.out.print(com(n,m)+"");System.out.println();}}}參數(shù)要符合形參定義要求11112113314.2.3參數(shù)傳遞根本數(shù)據(jù)類型的參數(shù)傳遞是以傳值的方式進(jìn)行,即將實(shí)際參數(shù)的值傳遞給形參;在方法內(nèi)對(duì)形參的修改只影響形參單元,不影響實(shí)參引用類型〔如對(duì)象、數(shù)組等〕參數(shù)傳遞是按地址進(jìn)行傳遞的。在方法內(nèi)對(duì)形參的訪問實(shí)際是訪問所指引用對(duì)象實(shí)參x5形參n5實(shí)參obj對(duì)象引用形參n對(duì)象引用例4-5根本類型參數(shù)傳遞演示publicclassTest1{staticvoidparaPass(intx){x=x+1;

System.out.println("x="+x);

}publicstaticvoidmain(Stringargs[]){

intm=5;paraPass(m);System.out.println("m="+m);

}}5m5x6x=6m=5例4-6引用類型的參數(shù)傳遞publicclassTest2{staticvoidparaRef(intx[]){x[1]=x[1]+1;}publicstaticvoidmain(Stringargs[]){inta[]={1,4,6,3};paraRef(a);for(intk=0;k<a.length;k++)System.out.print(a[k]+"\t");}}a1463x地址引用地址51563·遞歸求階乘staticintfac(intn){if(n==1)return1;elsereturnn*fac(n-1);

}n=3函數(shù)值:3*fac(2)求fac(3)函數(shù)值:2*fac(1)n=2求fac(2)callreturnn=1函數(shù)值:1求fac(1)例4-5輸出命令行所有參數(shù)publicclassAllCommandPara{publicstaticvoidmain(String[]args){for(inti=0;i<args.length;i++)System.out.println(args[i]+"");}}E:\java>javaAllCommandPara"hellogood"34

"my

123"hellogood34my

123思考以下問題數(shù)組的定義與分配空間的關(guān)系?數(shù)組賦初值的方法?默認(rèn)初值如何確定?如何實(shí)現(xiàn)對(duì)數(shù)組的遍歷訪問?1維,2維如何得到數(shù)組的大小?1維,2維如何理解方法定義與方法調(diào)用?使用方法的好處?方法定義的參數(shù)形態(tài)說明了什么?根本類型參數(shù)傳遞和引用類型參數(shù)傳遞差異?Java的命令行參數(shù)怎么提供數(shù)據(jù)?數(shù)組局部練習(xí)1〕利用隨機(jī)函數(shù)產(chǎn)生20個(gè)學(xué)生的英語成績(jī)存入一個(gè)數(shù)組中。

★輸出數(shù)組所有元素,每行輸出3個(gè)數(shù);★求最高分、最低分;★求平均成績(jī)。2〕利用隨機(jī)函數(shù)產(chǎn)生36個(gè)10~30之間的整數(shù)給一個(gè)6*6的矩陣賦值.

★求最大元素值,指出其在矩陣中的所有出現(xiàn)位置;

★求該矩陣的轉(zhuǎn)置矩陣。方法--上機(jī)練習(xí)1〕編寫根據(jù)三條邊求三角形面積的方法。利用該方法求以下兩個(gè)三角形面積?!?〕三條邊分別為:3,4,5〔2〕三條邊分別為:5.3,6.2,82〕從命令行參數(shù)獲取兩個(gè)整數(shù),找出兩個(gè)整數(shù)之間的所有素?cái)?shù),每行輸出3個(gè)數(shù)。以下代碼的輸出結(jié)果?publicclassTest{

staticintx=5;publicstaticvoidmain(Stringargv[]){change(x);x++;System.out.println(x);}staticvoidchange(intm){m+=2;}}A.7B.6C.5D.8○以下代碼的輸出結(jié)果?classtest3{publicstaticvoidmain(Stringargs[]){int[]a={1,2,3,4};for(inti=0;i<4;i++)a[i]=a[i]+i;for(intb:a)System.out.println(b);}}結(jié)果1357

課堂練習(xí)---等級(jí)考試上機(jī)題---將程序補(bǔ)充完整publicclassJava_2{

publicstaticvoidmain(String[]args){

int[]arrayOfInts={32,87,3,59,12,106,20,8,62,127};

intsearchfor=12;

inti=0;

booleanfoundIt=false;

for(;i<

;i++){

if(arrayOfInts[i]==searchfor){foundIt=

;break;}

}

if(foundIt){S

溫馨提示

  • 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. 人人文庫(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)論