Java程序設(shè)計(jì)-4哈工大全部課件_第1頁
Java程序設(shè)計(jì)-4哈工大全部課件_第2頁
Java程序設(shè)計(jì)-4哈工大全部課件_第3頁
Java程序設(shè)計(jì)-4哈工大全部課件_第4頁
Java程序設(shè)計(jì)-4哈工大全部課件_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計(jì)孟凡超哈爾濱工業(yè)大學(xué)(威海)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院辛運(yùn)幃,饒一梅,馬素霞.Java程序設(shè)計(jì)(第二版).清華大學(xué)出版社,2006.參考資料第1章概述第2章標(biāo)識(shí)符和數(shù)據(jù)類型第3章表達(dá)式和流程控制語句第4章數(shù)組、向量和字符串第5章進(jìn)一步討論對(duì)象和類第6章Java語言中的異常第7章Java的圖形用戶界面設(shè)計(jì)第8章Swing組件第9章JavaApplet第10章Java數(shù)據(jù)流第11章線程第12章Java網(wǎng)絡(luò)功能課程內(nèi)容4.1數(shù)組4.2

Vector類4.3字符串類型第4章數(shù)組、向量和字符串4.1數(shù)組數(shù)組說明數(shù)組是一個(gè)數(shù)據(jù)結(jié)構(gòu),用來存儲(chǔ)相同類型的數(shù)據(jù)。一個(gè)數(shù)組是系列的匿名變量,數(shù)組中的元素可以通過下標(biāo)來訪問。Java將數(shù)組作為對(duì)象來處理。類Object中定義的方法都可以用于數(shù)組對(duì)象。數(shù)組元素可以是根本類型,也可以是類類型,還可以是數(shù)組。4.1數(shù)組一維數(shù)組的定義type

arrayName[];其中,類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復(fù)合類型,數(shù)組名稱arrayName為一個(gè)合法的標(biāo)識(shí)符,[]指明該變量是一個(gè)數(shù)組類型變量。chars[];//s的每個(gè)元素都是char類型的intintArray[];//intArray中的每個(gè)元素都是整型的DatedateArray[];//dateArray的每個(gè)元素都是復(fù)合數(shù)據(jù)類型DatePointpoints[];//points的每個(gè)元素都是類Point類型在數(shù)組定義中不為數(shù)組元素分配內(nèi)存,因此方括號(hào)[]中不用指出數(shù)組中元素的個(gè)數(shù),即數(shù)組的長度。說明并不創(chuàng)立數(shù)組,它們只是引用變量,用來指向一個(gè)數(shù)組。4.1數(shù)組一維數(shù)組的定義(另一種方式)Type[]

arrayName;char[]s;//s的每個(gè)元素都是char類型的int[]intArray;//intArray中的每個(gè)元素都是整型的Date[]dateArray;//dateArray的每個(gè)元素都是復(fù)合數(shù)據(jù)類//型DatePoint[]points;//points的每個(gè)元素都是類Point類型4.1數(shù)組創(chuàng)立數(shù)組定義一個(gè)數(shù)組只是對(duì)數(shù)組的說明,系統(tǒng)并沒有為數(shù)組分配任何內(nèi)容,因此我們還不能訪問它的任何元素。數(shù)組必須經(jīng)過初始化后才能應(yīng)用數(shù)組的元素,這個(gè)過程就是數(shù)組的創(chuàng)立的過程。數(shù)組的初始化分為:靜態(tài)初始化和動(dòng)態(tài)初始化。靜態(tài)初始化:定義數(shù)組的同時(shí)對(duì)數(shù)組元素進(jìn)行初始化。4.1數(shù)組String

names[]={“Zhang”,“Li”,“Wang”}String

names[];names=newString[3];names[0]=“Zhang”;names[1]=“Li”;names[2]=“Wang”;4.1數(shù)組String

names[]=newString[3];//給數(shù)組names分配

//3個(gè)應(yīng)用空間String[]

names=newString[3];//定義String類型數(shù)組動(dòng)態(tài)初始化:使用運(yùn)算符new為數(shù)組分配空間。數(shù)組說明的方括號(hào)中的數(shù)字表示數(shù)組元素個(gè)數(shù)。type[]

arrayName=new

type[arraySize];type

arrayName[]=new

type[arraySize];names[0]=“Zhang”;names[1]=“Li”;names[2]=“Wang”;4.1數(shù)組復(fù)合類型數(shù)組使用運(yùn)算符new為只是為數(shù)組本身分配空間,并沒有對(duì)數(shù)組的元素進(jìn)行初始化。對(duì)于復(fù)合類型的數(shù)組,需要經(jīng)過兩步進(jìn)行空間分配:創(chuàng)立數(shù)組本身:typearrayName[]=newtype[arraySize];創(chuàng)立各個(gè)數(shù)組元素:arrayName[0]=newtype(paramList);arrayName[1]=newtype(paramList);……arrayName[arraySize-1]=newtype(paramList);4.1數(shù)組//創(chuàng)立有3個(gè)Point型的數(shù)組Pointpoint[]=newPoint[3];//創(chuàng)立3個(gè)Point型的數(shù)組元素point[0]=newPoint();point[1]=newPoint();point[2]=newPoint();4.1數(shù)組Point[]

point;pointpoint=newPoint[10];...........point.length:10..........point.length:10point[0]=newPoint();point[1]=newPoint();x:y:x:y:4.1數(shù)組Java中沒有靜態(tài)數(shù)組定義,數(shù)組的內(nèi)存都是通過new動(dòng)態(tài)分配的。該寫法是錯(cuò)誤的:int

intArray[5];Object[]

point;point=newPoint[3];Point[]

point;point=newObject[3];4.1數(shù)組數(shù)組邊界數(shù)組下標(biāo)從0開始,數(shù)組中的元素個(gè)數(shù)length是數(shù)組類中的唯一數(shù)據(jù)成員變量。使用new創(chuàng)立數(shù)組時(shí)系統(tǒng)自動(dòng)給length賦值。數(shù)組一旦創(chuàng)立完畢,其大小就固定下來。int[]

list=new

int[10];for(inti=0;i<list.length;i++){//循環(huán)體代碼}4.1數(shù)組數(shù)組元素的引用當(dāng)定義了一個(gè)數(shù)組,并用運(yùn)算符new為它分配了內(nèi)存空間后,就可以引用數(shù)組中的每一個(gè)元素了。數(shù)組名加上下標(biāo)就可以表示數(shù)組元素,元素的應(yīng)用格式為:arrayName[index];例如,arrayName[0],arrayName[i]當(dāng)創(chuàng)立一個(gè)數(shù)組時(shí),每個(gè)元素都被初始化。例如,字符型數(shù)組的每個(gè)值被初始化為0(\0000),而Point型數(shù)組的每個(gè)值被初始化圍null。4.1數(shù)組多維數(shù)組多維數(shù)組的定義

Java中沒有真正的多維數(shù)組,但因?yàn)閿?shù)組元素可以說明為任何類型,所以可以建立數(shù)組的數(shù)組(的數(shù)組……),由此得到多維數(shù)組。一般來講,n維數(shù)組是n-1維數(shù)組的數(shù)組。說明數(shù)組時(shí)使用類型及多對(duì)方括號(hào)。例如,int[][]是類型,它表示二維數(shù)組。type

arrayName[][];type[][]

arrayName;二維數(shù)組的定義:4.1數(shù)組int

intarray[][];Int[][]

intarray;與一維數(shù)組一樣,定義時(shí)對(duì)數(shù)組元素沒有分配內(nèi)存空間,需要使用new運(yùn)算符來分配內(nèi)存,然后才可以訪問每個(gè)元素。三維數(shù)組定義:type

arrayName[][][];type[][][]

arrayName;4.1數(shù)組多維數(shù)組的初始化靜態(tài)初始化:int[][]

intArray={{2,3},{1,5},{3,4}};intArray為一個(gè)3行2列的數(shù)組231534最外層括號(hào)所包含的元素是數(shù)組的第一維的各元素;最內(nèi)層括號(hào)對(duì)應(yīng)于數(shù)組最后一維。4.1數(shù)組123456789101112使用兩個(gè)下標(biāo)可以訪問數(shù)組中的任一元素,例如,intArray1[0][0]

//表示第1行第1列元素1intArray1[1][3]//表示第2行第4列元素74.1數(shù)組動(dòng)態(tài)初始化:int[][]

intArray=new

type[arraylength1][arraylength2];type

arrayN[][]=new

type[arraylength1][];arrayN[0]=newtype[arraylength2];arrayN[1]=newtype[arraylength2];…arrayN[arraylenth1-1]=newtype[arraylength2];方法1:直接為每一維分配空間方法2:多維數(shù)組可以從高維起,分別為每一維分配內(nèi)存。4.1數(shù)組1234567891011124.1數(shù)組多維數(shù)組的引用在定義并初始化多維數(shù)組后,可以使用多維數(shù)組中的每個(gè)元素。多維數(shù)組的引用方式為(以二維為例):arrayName[index1][index2]int

intArray[][]=newint[3][4];intArray[0][0]=1;intArray[0][1]=2;intArray[0][2]=3;4.1數(shù)組數(shù)組復(fù)制將elements中第1個(gè)(下標(biāo)為0)到第elements.length個(gè)元素依次放到hold中下標(biāo)從0開始的各個(gè)位置,即第1位到第5位。執(zhí)行完畢,數(shù)組hold的內(nèi)容為:1,2,3,4,5,11,124.2Vector類Java中的數(shù)組只能保存固定數(shù)目的元素,且必須把所有需要的內(nèi)存單元一次性的申請(qǐng)出來,而不能先創(chuàng)立數(shù)組再追加數(shù)組元素?cái)?shù)量,為了解決這個(gè)問題Java中引入了向量類Vector。Vector也是一組對(duì)象的集合,但相對(duì)于數(shù)組,Vector可以追加對(duì)象元素?cái)?shù)量,可以方便的修改和維護(hù)序列中的對(duì)象。4.2Vector類1向量(Vector)Vector是java.util類包提供一個(gè)工具類。Vector對(duì)應(yīng)于類似數(shù)組的順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),但是具有比數(shù)組更強(qiáng)大的功能。它允許不同類型元素共存的變長數(shù)組。每個(gè)Vector類的對(duì)象可以表達(dá)一個(gè)完整的數(shù)據(jù)序列。Vector類的對(duì)象不但可以保存順序的一列數(shù)據(jù),而且還可以提供了許多有用的方法來操作和處理這些數(shù)據(jù)。Vector類的對(duì)象所表達(dá)的序列中元素的個(gè)數(shù)是可變的,即Vector實(shí)現(xiàn)了變長數(shù)組。4.2Vector類向量比較適合在如下情況使用:需要處理的對(duì)象數(shù)組不定,序列中的元素都是對(duì)象或可以表示為對(duì)象。需要將不同類的對(duì)象組合成一個(gè)數(shù)據(jù)序列。需要做頻繁的對(duì)象序列中元素的插入和刪除。經(jīng)常需要定位序列中的對(duì)象和其他查找操作。在不同的類之間傳遞大量的數(shù)據(jù)。Vector類的局限性是其中的對(duì)象不能是簡單數(shù)據(jù)類型。4.2Vector類Vector類的構(gòu)造方法public

Vector():構(gòu)造一個(gè)空向量。publicVector(intinitialCapacity):以指定的初始存儲(chǔ)容量initialCapacity構(gòu)造一個(gè)空向量vector。publicVector(intinitialCapacity,intcapacityIncrement):以指定的初始存儲(chǔ)容量initialCapacity和容量增量capacityIncrement構(gòu)造一個(gè)空向量vector。4.2Vector類Vector

MyVector=newVector(100,50);該語句創(chuàng)立的MyVector向量序列初始有100個(gè)元素空間,以后一旦空間用盡那么以50為單位遞增,使序列中元素的個(gè)數(shù)變化成150,200,…。在創(chuàng)立Vector序列時(shí),不需要指明序列中元素的類型,可以在使用時(shí)確定。4.2Vector類Vector類對(duì)象的操作元素的添加addElement(Objectobj):將新元素添加到序列尾部。insertElementAt(Objectobj,intindex):將指定對(duì)象obj插入指定位置index位置。VectorMyVector=newVector();for(inti=1;i<=10;i++){MyVector.addElement(newRandom());}MyVector.insertElementAt("middle",5);4.2Vector類元素的刪除setElementAt(Objectobj,intindex):將向量序列index位置處的對(duì)象元素設(shè)置為obj,如果這個(gè)位置原來有元素,那么將被新值覆蓋。removeElement(Objectobj):刪除向量序列中第一個(gè)與指定的obj對(duì)象相同的元素,同時(shí)將后面的元素向前提,補(bǔ)上空位。removeElement(intindex):刪除index指定位置處的元素,同時(shí)將后面的元素向前提。removeAllElements():去除向量序列中的所有元素,同時(shí)向量的大小置為0。4.2Vector類元素的查找ObjectelementAt(intindex):返回指定位置處的元素。這個(gè)方法返回值是Object類型的對(duì)象,在使用之前通常需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,將返回的對(duì)象引用轉(zhuǎn)換成Object類的某個(gè)具體子類對(duì)象。booleancontains(Objectobj):檢查向量序列中是否包含指定的對(duì)象元素obj。intindexOf(Objectobj,intstart_index):從指定的start_index位置開始向后搜索,返回所找到的第一個(gè)與指定對(duì)象obj相同的元素的下標(biāo)位置。假設(shè)指定的對(duì)象不存在,那么返回-1。intlastIndexOf(Objectobj,intstart_index):從指定的start_index位置開始向前搜索,返回所找到的第一個(gè)與指定對(duì)象obj相同的元素的下標(biāo)位置。假設(shè)指定的對(duì)象不存在,那么返回-1。4.2Vector類Vector類中的其他方法publicfinalintsize():返回向量中的元素?cái)?shù)量。publicfinalbooleancontains(Objectelem):如果對(duì)象elem是向量中的一個(gè)元素值,那么返回true,否那么返回false。publicfinalintindexOf(Objectelem):從向量的第一個(gè)元素開始查找指定對(duì)象,并返回該對(duì)象的索引值。capacity():返回Vector的容量。clone():建立Vector的備份。copyInto(Object[]):把Vector中的元素復(fù)制到一個(gè)數(shù)組中。4.2Vector類firstElement():返回第一個(gè)元素。lastElement():返回最后一個(gè)元素。isEmpty():判斷是否為空。setSize():設(shè)置Vector的大小。trimToSize():將Vector的容量下調(diào)至最小值。4.3字符串類型字符串是內(nèi)存中連續(xù)排列的一個(gè)或多個(gè)字符。Java提供的標(biāo)準(zhǔn)包java.lang中封裝了類String和StringBuffer,分別用來處理不變字符串和可變字符串。不變字符串是指一旦創(chuàng)立,其內(nèi)容就不能改變。對(duì)于那些需要改變內(nèi)容并有許多操作的字符串,可以使用StringBuffer。4.3字符串類型字符串說明及初始化Java中的字符串分為常量和變量兩種。系統(tǒng)為程序中出現(xiàn)的字符串常量自動(dòng)創(chuàng)立一個(gè)String對(duì)象,如:System.out.println(“HelloWorld!”);將創(chuàng)立“HelloWorld!”對(duì)象,這個(gè)創(chuàng)立是隱含的。對(duì)于字符串變量,在使用之前要顯式說明,并進(jìn)行初始化。String

s;StringBuffersb1;Strings1=newString();char

chars[]={‘a(chǎn)’,’b’,’c’};Strings2=newString(chars);Strings3=“abc”;4.3字符串類型字符串處理String類中常用的方法:length():返回字符串中的字符個(gè)數(shù)。charAt(intindex):

溫馨提示

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