第3章JAVA語言基礎(chǔ)課件_第1頁
第3章JAVA語言基礎(chǔ)課件_第2頁
第3章JAVA語言基礎(chǔ)課件_第3頁
第3章JAVA語言基礎(chǔ)課件_第4頁
第3章JAVA語言基礎(chǔ)課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章JAVA語言基礎(chǔ)Part4數(shù)組及命令行參數(shù)1第3章JAVA語言基礎(chǔ)Part41本章內(nèi)容

數(shù)組的聲明、構(gòu)造和初始化一維數(shù)組的聲明和初始化數(shù)組元素的引用多維數(shù)組的聲明和使用數(shù)組拷貝命令行參數(shù)2本章內(nèi)容

數(shù)組的聲明、構(gòu)造和初始化一維數(shù)組的聲明和初始化2數(shù)組概述數(shù)組是多個(gè)相同類型數(shù)據(jù)的組合,實(shí)現(xiàn)對(duì)這些數(shù)據(jù)的統(tǒng)一管理數(shù)組屬引用類型,數(shù)組型數(shù)據(jù)是對(duì)象(object),數(shù)組中的每個(gè)元素相當(dāng)于該對(duì)象的成員變量數(shù)組中的元素可以是任何數(shù)據(jù)類型,包括基本類型和引用類型3數(shù)組概述數(shù)組是多個(gè)相同類型數(shù)據(jù)的組合,實(shí)現(xiàn)對(duì)這些數(shù)據(jù)的統(tǒng)一管一維數(shù)組聲明一維數(shù)組的聲明方式:

typevar[]或type[]var; 例如: inta[]; int[]a1; doubleb[]; Mydate[]c;Java語言中聲明數(shù)組時(shí)不能指定其長(zhǎng)度(數(shù)組中元素的個(gè)數(shù)),例如: inta[5];//非法4一維數(shù)組聲明一維數(shù)組的聲明方式:4創(chuàng)建數(shù)組(1)

publicclassTest{publicstaticvoidmain(Stringargs[]){ int[]s; s=newint[10]; for(inti=0;i<10;i++){ s[i]=2*i+1; System.out.println(s[i]); }}}Java中使用關(guān)鍵字new創(chuàng)建數(shù)組對(duì)象arrayName=newtype[size]創(chuàng)建基本數(shù)據(jù)類型一維數(shù)組對(duì)象演示1main棧內(nèi)存s堆內(nèi)存處內(nèi)存狀態(tài)5創(chuàng)建數(shù)組(1)publicclassTest{創(chuàng)建數(shù)組(2)創(chuàng)建基本數(shù)據(jù)類型一維數(shù)組對(duì)象演示2main棧內(nèi)存s0int[]對(duì)象000000000堆內(nèi)存處內(nèi)存狀態(tài)

publicclassTest{publicstaticvoidmain(Stringargs[]){ int[]s; s=newint[10]; for(inti=0;i<10;i++){ s[i]=2*i+1; System.out.println(s[i]); }}}6創(chuàng)建數(shù)組(2)創(chuàng)建基本數(shù)據(jù)類型一維數(shù)組對(duì)象演示2mai創(chuàng)建數(shù)組(3)main棧內(nèi)存s1int[]對(duì)象35791113151719堆內(nèi)存

publicclassTest{publicstaticvoidmain(Stringargs[]){ int[]s; s=newint[10]; for(inti=0;i<10;i++){ s[i]=2*i+1; System.out.println(s[i]); }}}處內(nèi)存狀態(tài)創(chuàng)建基本數(shù)據(jù)類型一維數(shù)組對(duì)象演示37創(chuàng)建數(shù)組(3)main棧內(nèi)存s1int[]對(duì)象357911創(chuàng)建數(shù)組(4)創(chuàng)建元素為引用數(shù)據(jù)類型的數(shù)組classMyDate{privateintday;privateintmonth;privateintyear;publicMyDate(intd,intm,inty){ day=d;month=m;year=y;}publicvoiddisplay(){ System.out.println(day+"-"+month+"-"+year);}}8創(chuàng)建數(shù)組(4)創(chuàng)建元素為引用數(shù)據(jù)類型的數(shù)組class創(chuàng)建數(shù)組(5)

publicclassTest{publicstaticvoidmain(Stringargs[]){ MyDate[]m; m=newMyDate[10]; for(inti=0;i<10;i++){ m[i]=newMyDate(i+1 ,i+1,1990+i); m[i].display(); }}}main棧內(nèi)存m堆內(nèi)存創(chuàng)建元素為引用數(shù)據(jù)類型的數(shù)組演示1處內(nèi)存狀態(tài)9創(chuàng)建數(shù)組(5)publicclassTest{創(chuàng)建數(shù)組(6)

publicclassTest{publicstaticvoidmain(Stringargs[]){ MyDate[]m; m=newMyDate[10]; for(inti=0;i<10;i++){ m[i]=newMyDate(i+1 ,i+1,1990+i); m[i].display(); }}}main棧內(nèi)存mnullMyDate[]對(duì)象nullnullnullnullnullnullnullnullnull堆內(nèi)存創(chuàng)建元素為引用數(shù)據(jù)類型的數(shù)組演示1處內(nèi)存狀態(tài)10創(chuàng)建數(shù)組(6)publicclassTest{創(chuàng)建數(shù)組(7)Java中使用關(guān)鍵字new創(chuàng)建數(shù)組對(duì)象main棧內(nèi)存m*****MyDate[]對(duì)象**********nullnullnullnullnullnullnull堆內(nèi)存111990221991331992

publicclassTest{publicstaticvoidmain(Stringargs[]){ MyDate[]m; m=newMyDate[10]; for(inti=0;i<10;i++){ m[i]=newMyDate(i+1 ,i+1,1990+i); m[i].display(); }}}for循環(huán)執(zhí)行三次后內(nèi)存狀態(tài)11創(chuàng)建數(shù)組(7)Java中使用關(guān)鍵字new創(chuàng)建數(shù)組對(duì)數(shù)組初始化

有兩種方式:動(dòng)態(tài)與靜態(tài)動(dòng)態(tài)初始化

數(shù)組定義與為數(shù)組元素分配空間并賦值的操作分開進(jìn)行。MyDatedates[];dates=newMyDate[3];dates[0]=newMyDate(22,7,1964);dates[1]=newMyDate(1,1,2000);dates[2]=newMyDate(22,12,1964);inta[];a=newint[3];a[0]=3;a[1]=9;a[2]=8;12數(shù)組初始化

有兩種方式:動(dòng)態(tài)與靜態(tài)動(dòng)態(tài)初始化MyDate數(shù)組初始化靜態(tài)初始化:在定義數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值。inta[]={3,9,8};MyDatedates[]={newMyDate(22,7,1964),newMyDate(1,1,2000),newMyDate(22,12,1964)};為什么愿意采用更長(zhǎng)的方法呢?在創(chuàng)建數(shù)組的時(shí)候,可能不知道數(shù)組元素的值。

13數(shù)組初始化靜態(tài)初始化:inta[]={3,9,數(shù)組元素的默認(rèn)初始化數(shù)組是引用類型,它的元素相當(dāng)于類的成員變量,因此數(shù)組一經(jīng)分配空間,其中的每個(gè)元素也被按照成員變量同樣的方式被隱式初始化。例如:publicclassTest{publicstaticvoidmain(Stringargv[]){inta[]=newint[5];

System.out.println(a[3]);}}14數(shù)組元素的默認(rèn)初始化數(shù)組是引用類型,它的元素相當(dāng)于類的成員變匿名數(shù)組int[]a=newint[]{4,7,2};[]并不定義數(shù)組的長(zhǎng)度,{}種元素的個(gè)數(shù)就是數(shù)組的長(zhǎng)度。publicclassTest{voidtaksAnArray(int[]someArray){ //usethissomeArray...}publicstaticvoidmain(String[]args){ Testf=newTest(); f.taksAnArray(newint[]{1,2}); } }15匿名數(shù)組int[]a=newint[]{4數(shù)組元素的引用定義并用運(yùn)算符new為之分配空間后后,才可以引用數(shù)組中的每個(gè)元素;數(shù)組元素的引用方式:arrayName[index]

index為數(shù)組元素下標(biāo)(也稱索引),可以是整型常量或整型表達(dá)式。如a[3],b[i],c[6*i];數(shù)組元素下標(biāo)從0開始;長(zhǎng)度為n的數(shù)組合法下標(biāo)取值范圍:0~n-1;每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度,例如:a.length指明數(shù)組a的長(zhǎng)度(元素個(gè)數(shù));Eg:int[]a=newint[5];for(inti=0;i<5;i++){a[i]=i;}for(i=a.lengh-1;i>=0;i--){System.out.println(“a[”+I+”]=”+a[i]);}16數(shù)組元素的引用定義并用運(yùn)算符new為之分配空間后后,才可以引一維數(shù)組的引用賦值int[]a;int[]b=newint[4];char[]c=newchar[5];a=b;a=c;//?byte,char,short都可自動(dòng)提升為int,但在數(shù)組中不可以

17一維數(shù)組的引用賦值int[]a;byte,char,sEx1(課后)編寫一應(yīng)用程序?qū)崿F(xiàn)下述功能:創(chuàng)建一基本(primitive)數(shù)據(jù)類型的數(shù)組并輸出各數(shù)組元素的值。例如:

char[]s; s=newchar[26]; for(inti=0;i<26;i++){ s[i]=(char)(’A’+i); System.out.println(s[i]); //System.out.println(“s[”+i+“]=”+s[i]); }

編寫一應(yīng)用程序練習(xí)數(shù)組對(duì)象的兩種初始化方式,并輸出各元素的值。編寫程序,練習(xí)使用數(shù)組類型對(duì)象的length屬性,測(cè)試并體會(huì)數(shù)組元素的默認(rèn)初始化機(jī)制;18Ex1(課后)編寫一應(yīng)用程序?qū)崿F(xiàn)下述功能:創(chuàng)建一基本(pri多維數(shù)組(1)二維數(shù)組舉例: inta[][]={{1,2},{3,4,0,9},{5,6,7}};ijj=0j=1j=2j=3i=012i=13409i=256719多維數(shù)組(1)二維數(shù)組舉例:i多維數(shù)組(2)Java中多維數(shù)組被做為數(shù)組的數(shù)組處理Java中多維數(shù)組的聲明和初始化應(yīng)按從高維到低維的順序進(jìn)行

intt[][]=newint[4][]; t[0]=newint[5]; t[1]=newint[5]; intt1[][]=newint[][4];//非法20多維數(shù)組(2)Java中多維數(shù)組被做為數(shù)組的數(shù)組處理20多維數(shù)組(3)Java中多維數(shù)組不必須是規(guī)則矩陣形式——“鋸齒狀矩陣” int[][]tt=newint[4][]; tt[0]=newint[2]; tt[1]=newint[4]; tt[2]=newint[6]; tt[3]=newint[8];

21多維數(shù)組(3)Java中多維數(shù)組不必須是規(guī)則矩陣形式21多維數(shù)組初始化靜態(tài)初始化: intintArray[][]={{1,2},{2,3},{3,4,5}}; intintArray1[3][2]={{1,2},{2,3},{4,5}};//illegal動(dòng)態(tài)初始化

inta[][]=newint[4][5]; intb[][]=newint[3][] b[0]=newint[2]; b[1]=newint[3]; b[2]=newint[5];22多維數(shù)組初始化靜態(tài)初始化:22一個(gè)關(guān)于多維數(shù)組的練習(xí):Giventhefollowing:publicclassHelloWorld{publicstaticvoidmain(String[]args){ byte[][]big=newbyte[7][7]; byte[][]b=newbyte[2][1]; byteb3=5; byteb2[][][][]=newbyte[2][3][1][2];

}}Whichoffollowingcouldbeinsertedat“→”?Ab2[0][1]=b;Db2[1][2][0]=b;Bb[0][0]=b3;Eb2[0][1][0][0]=b[0][0];Cb2[1][1][0]=b[0][0];Fb2[0][1]=big;23一個(gè)關(guān)于多維數(shù)組的練習(xí):Giventhefollowin復(fù)制數(shù)組Java.lang.System類的arraycopy()方法提供了數(shù)組元素復(fù)制功能://源數(shù)組intsource[]={1,2,3,4,5,6};//目的數(shù)組intdest[]={10,9,8,7,6,5,4,3,2,1};//復(fù)制源數(shù)組中從下標(biāo)0開始的source.length個(gè)元素到//目的數(shù)組,從下標(biāo)0的位置開始存儲(chǔ)。System.arraycopy(source,0,dest,0,source.length);24復(fù)制數(shù)組Java.lang.System類的arraycop復(fù)制數(shù)組System.arraycopy()方法只復(fù)制元素。如果數(shù)組元素是引用型變量,則只復(fù)制引用,不復(fù)制對(duì)象實(shí)體。當(dāng)復(fù)制大量數(shù)據(jù)時(shí),使用System.arraycopy()命令,優(yōu)化JAVA程序開發(fā),提高JAVA性能.25復(fù)制數(shù)組System.arraycopy()方法只復(fù)制元素。EX2(課后)編寫一應(yīng)用程序?qū)崿F(xiàn)下述功能:創(chuàng)建一基本(primitive)數(shù)據(jù)類型的二維數(shù)組并輸出各數(shù)組元素的值。例如:

…… inta[][]={{1,2},{2,3,4,5},{5,6,7}}; for(inti=0;i<3;i++){ for(intj=0;j<a[i].length;j++){ System.out.println(intArray1[i][j]); } } ……編寫一應(yīng)用程序練習(xí)數(shù)組復(fù)制方法,并輸出在復(fù)制操作執(zhí)行前后dest數(shù)組各元素的值。 建議輸出采用System.out.print(""+hold

溫馨提示

  • 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)論