資源描述:
《java基礎(chǔ)知識(shí)--對(duì)象數(shù)組及二維數(shù)組》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第2章對(duì)象數(shù)組及二維數(shù)組課程回顧:OO:屬性+行為特性:封裝+繼承+多態(tài)第2章對(duì)象數(shù)組及二維數(shù)組Java基礎(chǔ)知識(shí)變量、數(shù)據(jù)類型、判定語(yǔ)句、循環(huán)語(yǔ)句第2章對(duì)象數(shù)組及二維數(shù)組用數(shù)組存儲(chǔ)對(duì)象對(duì)數(shù)組元素進(jìn)行排序在已排序的數(shù)組中查找二維數(shù)組數(shù)組元素可以是任何類型(只要所有元素具有相同的類型)數(shù)組元素可以是基本數(shù)據(jù)類型數(shù)組元素也可以是類對(duì)象,稱這樣的數(shù)組為對(duì)象數(shù)組。在這種情況下,數(shù)組的每一個(gè)元素都是一個(gè)對(duì)象的引用。用數(shù)組存儲(chǔ)對(duì)象例如,BankAccount[]accounts;或BankAccountaccounts[];定義了一個(gè)存儲(chǔ)BankAccount
2、類對(duì)象的數(shù)組。與C、C++不同,Java在數(shù)組的定義中并不為數(shù)組元素分配內(nèi)存,因此[]中不需指明數(shù)組中元素的個(gè)數(shù),即數(shù)組長(zhǎng)度,而且對(duì)于如上定義的數(shù)組是不能引用的,必須經(jīng)過(guò)初始化才可以引用。用數(shù)組存儲(chǔ)對(duì)象對(duì)象數(shù)組的初始化分為靜態(tài)初始化和動(dòng)態(tài)初始化靜態(tài)初始化:在定義數(shù)組的同時(shí)對(duì)數(shù)組元素進(jìn)行初始化,例如:BankAccount[]accounts={newBankAccount(“Zhang",100.00),newBankAccount(“Li",2380.00),newBankAccount(“Wang",500.00),newBankAccoun
3、t(“Liu",175.56),newBankAccount(“Ma",924.02)};用數(shù)組存儲(chǔ)對(duì)象動(dòng)態(tài)初始化:使用運(yùn)算符new為數(shù)組分配空間,對(duì)于基本類型的數(shù)組,其格式如下:typearrayName[]=newtype[arraySize];type[]arrayName=newtype[arraySize];對(duì)于對(duì)象數(shù)組,使用運(yùn)算符new只是為數(shù)組本身分配空間,并沒(méi)有對(duì)數(shù)組的元素進(jìn)行初始化。即數(shù)組元素都為空,如圖。數(shù)組元素未初始化的對(duì)象數(shù)組用數(shù)組存儲(chǔ)對(duì)象此時(shí)不能訪問(wèn)數(shù)組的任何元素,必須對(duì)數(shù)組元素進(jìn)行初始化后,才能訪問(wèn)。因此,對(duì)于對(duì)象數(shù)組
4、,需要經(jīng)過(guò)兩步空間分配。首先給數(shù)組分配空間:typearrayName[]=newtype[arraySize];然后給每一個(gè)數(shù)組元素分配空間:arrayName[0]=newtype(paramList);…arrayName[arraySize-1]=newtype(paramList);用數(shù)組存儲(chǔ)對(duì)象例如://定義一個(gè)String類型的數(shù)組StringstringArrar[];//給數(shù)組stringArray分配3個(gè)引用空間,每個(gè)引用值為null。stringArray=newString[3];//下面給數(shù)組元素分配空間stringAr
5、ray[0]=newString(“how”);stringArray[1]=newString(“are”);stringArray[2]=newString(“you”);用數(shù)組存儲(chǔ)對(duì)象當(dāng)給數(shù)組元素分配了內(nèi)存空間后,就可以引用了。數(shù)組元素的引用方式為:arrayName[index]index為數(shù)組下標(biāo),下標(biāo)從0開(kāi)始,一直到數(shù)組長(zhǎng)度減1。下標(biāo)可以是整型常數(shù)或表達(dá)式。Java對(duì)數(shù)組元素要進(jìn)行越界檢查以保證安全性。同時(shí),對(duì)于每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度(這里即是數(shù)組元素的個(gè)數(shù))。例如,stringArray.length指明數(shù)組s
6、tringArray的長(zhǎng)度。用數(shù)組存儲(chǔ)對(duì)象對(duì)象數(shù)組應(yīng)用舉例使用數(shù)組對(duì)一個(gè)班的學(xué)生信息及考試成績(jī)進(jìn)行存儲(chǔ),學(xué)生信息包括學(xué)號(hào)、姓名、三門課(英語(yǔ)、數(shù)學(xué)、計(jì)算機(jī))的成績(jī)及總成績(jī)。用數(shù)組存儲(chǔ)對(duì)象首先定義學(xué)生類Student:屬性包括:學(xué)號(hào)(id),姓名(name),英語(yǔ)成績(jī)(eng),數(shù)學(xué)成績(jī)(math),計(jì)算機(jī)成績(jī)(comp),總成績(jī)(sum)。方法包括:構(gòu)造方法,get方法,set方法,toString方法,equals方法,compare方法(比較兩個(gè)學(xué)生的總成績(jī),結(jié)果分大于,小于,等于),sum方法(計(jì)算總成績(jī))。為了能夠?qū)tudent類對(duì)象直
7、接存儲(chǔ),應(yīng)使其加入串行化協(xié)議。代碼如下:用數(shù)組存儲(chǔ)對(duì)象//Student.javaimportjava.io.*;publicclassStudentimplementsSerializable{privateStringid;//學(xué)號(hào)privateStringname;//姓名privateinteng;//英語(yǔ)成績(jī)privateintmath;//數(shù)學(xué)成績(jī)privateintcomp;//計(jì)算機(jī)成績(jī)privateintsum;//總成績(jī)用數(shù)組存儲(chǔ)對(duì)象//構(gòu)造方法publicStudent(Stringid,Stringname,inteng,
8、intmath,intcomp){this.id=id;this.name=name;this.eng=eng;this.math=ma