版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)【1】什么是Java程序使用的類(lèi)?什么是類(lèi)庫(kù)?答:類(lèi)是將一類(lèi)事物的特性描述出來(lái),然后如果用這個(gè)類(lèi)來(lái)定義對(duì)象,則該對(duì)象就擁有了這個(gè)類(lèi)所描述的所有特性。在Java系統(tǒng)中,系統(tǒng)定義好的類(lèi)根據(jù)實(shí)現(xiàn)的功能不同,可以劃分成不同的集合,每個(gè)集合稱(chēng)為一個(gè)包,所有包合稱(chēng)為類(lèi)庫(kù)?!?】如何定義方法?在面向?qū)ο蟪绦蛟O(shè)計(jì)中方法有什么作用?答:方法的定義由兩部分組成:方法聲明和方法體。方法的聲明如下:返回值類(lèi)型方法名(參數(shù)類(lèi)型形式參數(shù)1參數(shù)類(lèi)型形式參數(shù)2…){返回值;}在面向?qū)ο蟪绦蛟O(shè)計(jì)中,方法的作用是完成對(duì)類(lèi)和對(duì)象屬性操作?!?】簡(jiǎn)述構(gòu)造方法的功能和特點(diǎn)。下面的程序片段是某學(xué)生為student類(lèi)編寫(xiě)的構(gòu)造方法,請(qǐng)指出其中的錯(cuò)誤。voidStudent(intno,Stringname)studentNo=no;studentName=name;returnno;}答:構(gòu)造方法的功能是:構(gòu)造方法是一個(gè)特殊的方法,主要用于初始化新創(chuàng)建的對(duì)象;特點(diǎn):構(gòu)造方法的方法名要求與類(lèi)名相同,用戶(hù)不能直接調(diào)用,只能通過(guò)new運(yùn)算符調(diào)用,而且構(gòu)造方法是不返回任何數(shù)據(jù)類(lèi)型,甚至也不返回void數(shù)據(jù)類(lèi)型,即不能在構(gòu)造方法前加void。錯(cuò)誤之處:(1)構(gòu)造方法Student。前不能加void,(2)不能用return語(yǔ)句,(3)類(lèi)名Student首字母S改成小寫(xiě)s.【4】定義一個(gè)表示學(xué)生的student類(lèi),包括的域有學(xué)號(hào)、姓名、性別、年齡,包括的方法有獲得學(xué)號(hào)、姓名、性別、年齡及修改年齡。編寫(xiě)Java程序創(chuàng)建student類(lèi)的對(duì)象及測(cè)試其方法的功能。classStudent{Stringid;Stringname;Stringsex;intage;voidtalk(){System?out.println("大家好!我的id號(hào)"+id+"我叫"+name+""+sex+"今年"+age+"歲。");}Student(){}Student(Stringid){this.id=id;}Student(Stringn,Strings,inta){name=n;sex=s;age=a;}}publicclassTestStudent{publicstaticvoidmain(String[]arge){Students1=newStudent("20130923");s1?name="張強(qiáng)";s1.sex="男";s1.age=22;s1.talk();}}【5】擴(kuò)充、修改程序。為第4題的student類(lèi)定義構(gòu)造函數(shù)初始化所有的域,增加一個(gè)方法publicStringprintInfoO把student類(lèi)對(duì)象的所有域信息組合形成一個(gè)字符串,并在主類(lèi)中創(chuàng)建學(xué)生對(duì)象及測(cè)試各方法的功能。classStudent{Stringid;Stringname;Stringsex;intage;voidtalk(){System?out?println("大家好!我的id號(hào)"+id+"我叫"+name+""+sex+"今年"+age+"歲。");}Student(){}Student(Stringid){this.id=id;}Student(Stringn,Strings,inta){name=n;sex=s;age=a;}publicStringprintInfo(){returnname+"的學(xué)號(hào)是"+this?id+",今年"+age+"歲。我是"+sex+"生。";}}publicclassTestStudent{publicstaticvoidmain(String[]arge){Students1=newStudent("20130923");="張強(qiáng)";s1.sex="男";s1.age=22;s1.talk();System.out.println(s1.printInfo());}}【6】什么是修飾符?修飾符的種類(lèi)有哪些?它們各有什么作用?答:(1)修飾符是用于限定類(lèi)對(duì)象使用的權(quán)限,從而實(shí)現(xiàn)類(lèi)中成員的信息隱藏。訪(fǎng)問(wèn)修飾符適用于類(lèi)成員,而不是方法內(nèi)部的局部變量。(2)Java常見(jiàn)的訪(fǎng)問(wèn)修飾符有4種:private、default、protected和public。(3)public可以被所有的類(lèi)訪(fǎng)問(wèn);pravite只能被類(lèi)本身訪(fǎng)問(wèn),其他類(lèi)無(wú)法訪(fǎng)問(wèn);protected可以被類(lèi)本身、它的子類(lèi)(包括同一個(gè)包中以及不同包中的子類(lèi));default屬于默認(rèn)的訪(fǎng)問(wèn)狀態(tài),可以被類(lèi)本身和同一個(gè)包中的類(lèi)訪(fǎng)問(wèn)【7】什么是抽象類(lèi)?為什么要引入抽象類(lèi)的概念?答:抽象類(lèi)是用來(lái)描述人們?cè)趯?duì)問(wèn)題領(lǐng)域進(jìn)行分析、設(shè)計(jì)中得出的抽象概念,是對(duì)一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。抽象類(lèi)不具備實(shí)際功能,是專(zhuān)門(mén)設(shè)計(jì)用來(lái)讓子類(lèi)繼承的類(lèi),把這些具有共同特征的方法抽象出來(lái),由子類(lèi)負(fù)責(zé)這些抽象方法的實(shí)現(xiàn)細(xì)節(jié),而父類(lèi)僅提供此方法的名稱(chēng)和聲明、沒(méi)有方法的主體。8】什么是抽象方法?如何定義、使用抽象方法?【9】包的作用是什么?如何在程序中引入已定義的類(lèi)?使用已定義的用戶(hù)類(lèi)、系統(tǒng)類(lèi)有哪些主要方式?答:(1)包的作用是將類(lèi)和接口封裝在一起,方便了類(lèi)和接口的管理和調(diào)用。(2)要引入包中已定義的類(lèi),必須使用關(guān)鍵字import來(lái)導(dǎo)入這些類(lèi)所在的包。Import語(yǔ)句的一般格式為:import包名.類(lèi)名(3)使用已定義的用戶(hù)類(lèi)、系統(tǒng)類(lèi)主要有三種方式:直接使用系統(tǒng)類(lèi)、繼承系統(tǒng)類(lèi)和創(chuàng)建已定義的用戶(hù)類(lèi)、系統(tǒng)類(lèi)的對(duì)象?!?0】什么是繼承?如何定義繼承關(guān)系?答:繼承用于創(chuàng)建可重用、擴(kuò)展和修改在其他類(lèi)中定義的行為的新類(lèi)。被繼承的類(lèi)稱(chēng)為“基類(lèi)”,繼承“基類(lèi)”的類(lèi)稱(chēng)為“派生類(lèi)”。派生的類(lèi)可以有一個(gè)直接基類(lèi)。繼承是可傳遞的。java中通過(guò)關(guān)鍵自“extends”來(lái)繼承,為*isa*的關(guān)系?!?1】什么是多態(tài),如何實(shí)現(xiàn)多態(tài)?答:多態(tài)是指一個(gè)程序中同名的不同方法共存的情況。這些方法同名的原因是它們的最終功能和目的都相同,但是由于在完成同一功能時(shí),可能遇到不同的具體情況,所以需要定義含不同的具體內(nèi)容的方法,來(lái)代表多種具體實(shí)現(xiàn)形式。多態(tài)通常是一個(gè)消息在不同的類(lèi)中用不同的方
法實(shí)現(xiàn)的。多態(tài)的實(shí)現(xiàn)是由消息的接收者確定一個(gè)消息應(yīng)如何解釋?zhuān)皇怯上⒌陌l(fā)送者確定,消息的發(fā)送者只需要指導(dǎo)另外的實(shí)例可以執(zhí)行一種特定操作即可。Java中提供兩種多態(tài)機(jī)制:方法重載與方法重寫(xiě)。12】解釋this和super的意義和作用。答:(1)this指的是引用當(dāng)前對(duì)象或類(lèi)名稱(chēng),當(dāng)一個(gè)類(lèi)的實(shí)例變量名與一個(gè)方法中參數(shù)名相使用關(guān)鍵字this在訪(fǎng)問(wèn)它;同時(shí),則參數(shù)就隱藏了實(shí)例變量名,此時(shí)可通過(guò)l=j
同時(shí),則參數(shù)就隱藏了實(shí)例變量名,此時(shí)可通過(guò)l=j
|==|(2)super用了引用當(dāng)前對(duì)象的父類(lèi),通過(guò)super來(lái)訪(fǎng)問(wèn)父類(lèi)被子類(lèi)隱藏的成員變量、成員方法以及父類(lèi)的構(gòu)造方法。由于子類(lèi)不繼承父類(lèi)的構(gòu)造方法,可使用super來(lái)調(diào)用父類(lèi)的構(gòu)造方法,并且super必須是子類(lèi)構(gòu)造方法中的第一條語(yǔ)句?!?3】什么是接口?為什么要定義接口?接口和類(lèi)有什么異同?答:接口是用來(lái)調(diào)節(jié)各類(lèi)之間的相互關(guān)系的一種結(jié)構(gòu),接口是抽象類(lèi)的一種,只包含常量和方法的定義,而沒(méi)有變量和具體方法的實(shí)現(xiàn),且方法都是抽象方法。接口定義的格式如下:[public]interface接口名[extends父接口名列表]{代碼}Extends子句有類(lèi)聲明的extends子句基本相同,不同的是一個(gè)接口可有多個(gè)父接口,用逗號(hào)隔開(kāi),而一個(gè)類(lèi)只能有一個(gè)父類(lèi)。JAVA中的類(lèi)只能實(shí)現(xiàn)單重繼承,這雖然可有簡(jiǎn)化編程,但畢竟沒(méi)有完全實(shí)現(xiàn)面向?qū)ο蟮墓δ堋6x接口的主要作用,就是幫助JAVA實(shí)現(xiàn)類(lèi)間多重繼承的結(jié)構(gòu)。定義一個(gè)接口是可以通過(guò)extends關(guān)鍵字聲明該新接口是某個(gè)已經(jīng)存在的父接口的派生接口,它將繼承父接口的所有屬性和方法。與類(lèi)的繼承不同的是一個(gè)接口可以有一個(gè)以上的父接口,它們之間用逗號(hào)分隔,形成父接口列表。新接口將繼承所有父接口中的屬性和方法?!?5】編寫(xiě)一個(gè)程序?qū)崿F(xiàn)包的功能。[解答]:包的功能實(shí)現(xiàn)包括兩步驟:打包、引用包,其具體實(shí)現(xiàn)如下:(1)//設(shè)當(dāng)前運(yùn)行目錄的子目錄test\bag下有MyBag.class類(lèi),其源程序如下:packagetest.bag;publicclassMyBag{publicvoidprint(){System?out?println("包的功能測(cè)試");}}(2)//在當(dāng)前目錄的TestBag.java中,要使用子目錄test\bag下有MyBag.class類(lèi)中的print()//方法,其源程序如下:importtest.bag.MyBag;publicclassTestBag{publicstaticvoidmain(Stringargs[]){MyBagmb=newMyBag();mb.print();}}【16】填空:⑴如果類(lèi)A繼承了類(lèi)B,則類(lèi)A被稱(chēng)為_(kāi)子類(lèi),類(lèi)B被稱(chēng)為父類(lèi)。(2)繼承使 成為可能,它節(jié)省了開(kāi)發(fā)時(shí)間。
(3)如果一個(gè)類(lèi)包含一個(gè)或多個(gè)abstract方法,它就是一個(gè)抽象類(lèi)。一個(gè)子類(lèi)一般比其超類(lèi)封裝的功能要 。⑸標(biāo)記成 的類(lèi)的成員不能由該類(lèi)的方法訪(fǎng)問(wèn)。(6)Java用關(guān)鍵字指明繼承關(guān)系。(6)Java用關(guān)鍵字指明繼承關(guān)系。(7)this代表了的引用。TOC\o"1-5"\h\z⑻super表示的是當(dāng)前對(duì)象的 對(duì)象。抽象類(lèi)的修飾符是 。接口中定義的數(shù)據(jù)成員是 。接口中沒(méi)有什么 方法,所有成員方法都是 方法程序改錯(cuò)1、改正下面程序段中的錯(cuò)誤(共5處)publicClassTest{publicstaticvoidmain(Stringargs){inti1,i2,i3;floatf;charc;System.out.println("int:"+i1);c=“A”;f=3.0;}}2、改正下面程序段中的錯(cuò)誤(共5處)publicclassTest{publicvoidmain(String[]args){booleanisValid=0;intscores[5]={65,70,69,98,86};if(isValid)then{System.out.println(scores[5]);}else{System.out.println(“Noinformation”);}}}3、改正下面程序段中的錯(cuò)誤(共5處)publicclassStudent{Stringid;Strngname;intsalary;publicvoidTest(Stringid,Stringname,intsalary){this.id=id;=name;this.salary=salary;}publicvoidchangeInfo(Stringid,intsalary){booleanresult;if(id==this.id){this.salary=salary;result=TRUE;}else{result=false;}returnresult;}publicbooleanchangeInfo(Stringids,intsalarys){}}程序填空題1、 定義一個(gè)長(zhǎng)度為5的字符串?dāng)?shù)組,并初始化其初值為“open”,“door”,“the”,“open”,“name”;計(jì)算該數(shù)組中“open”出現(xiàn)的次數(shù),并倒序輸出數(shù)組元素。publicclassTest{publicvoidstaticmain(String[]args){//聲明并初始化數(shù)組(1)intcount=0;〃計(jì)算該數(shù)組中“open”出現(xiàn)的次數(shù)(2){(3)count++;}//倒序輸出數(shù)組元素(4){(5)}}}2、 定義一個(gè)抽象類(lèi)AbstractTest,其中有一個(gè)公共的抽象方法printMsg()。然后定義此抽象類(lèi)的一個(gè)子類(lèi)DefaUtTest,包括的成員變量有姓名,學(xué)號(hào),分?jǐn)?shù),且此類(lèi)中包括二個(gè)構(gòu)造方法。abstractclassAbstractTest{(1)}(2){Stringname;Stringid;intscore;//接收三個(gè)參數(shù)的構(gòu)造方法(3)//接收姓名和學(xué)號(hào)二個(gè)參數(shù)的構(gòu)造方法(4)//實(shí)現(xiàn)抽象方法,方法體為打印出學(xué)生的姓名與成績(jī)(5)}3、定義接口Student,該接口中有一個(gè)無(wú)參、無(wú)返回值的方法prtMsg;定義類(lèi)College,包括的私有屬性有id和name,包括一個(gè)接收學(xué)生學(xué)號(hào)和姓名的構(gòu)造方法,并且實(shí)現(xiàn)Student接口。interfaceS
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024擔(dān)保合同范本樣本
- 2024天津市小型建設(shè)工程施工合同(空白)
- 廣告代理服務(wù)合同
- 寫(xiě)字間租賃協(xié)議
- 建筑施工承包合同范本
- 個(gè)人期貨市場(chǎng)貸款合同
- 人才互助發(fā)展協(xié)議書(shū)
- 新版股權(quán)協(xié)議書(shū)樣本
- 攪拌機(jī)租賃合同樣式
- 技術(shù)服務(wù)合同樣本地址
- 半導(dǎo)體簡(jiǎn)答題
- 附件4:配網(wǎng)安健環(huán)設(shè)施標(biāo)準(zhǔn)配置
- 辦公室工作流程圖示
- (完整版)營(yíng)銷(xiāo)策劃服務(wù)清單
- OBE理念與人才培養(yǎng)方案制定PPT課件
- 離任審計(jì)工作方案 樣稿
- 四大名著稱(chēng)四大小說(shuō)三國(guó)演義西游記水滸傳紅樓夢(mèng)中國(guó)古典章回小說(shuō)PPT資料課件
- 港珠澳大橋項(xiàng)目管理案例分析PPT課件
- GB∕T 12810-2021 實(shí)驗(yàn)室玻璃儀器 玻璃量器的容量校準(zhǔn)和使用方法
- 一般跨越架搭設(shè)施工方案
評(píng)論
0/150
提交評(píng)論