Java 試題附參考答案_第1頁
Java 試題附參考答案_第2頁
Java 試題附參考答案_第3頁
Java 試題附參考答案_第4頁
Java 試題附參考答案_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——Java試題附參考答案

附錄B參考答案

第1章:Java簡介——實踐與練習(xí)

1.7.1填空題

1.Java源程序文件的后綴是*.java,Java字節(jié)碼文件的后綴名稱是*.class。2.Java程序?qū)崿F(xiàn)可移值性,依靠的是JVM。

3.Java語言的三個分支是:JavaSE、JavaME、JavaEE。

4.Java程序由類組成,假使Java使用publicclass聲明類,則文件名稱必需與類名稱一致。

5.Java執(zhí)行是從main()方法開始執(zhí)行的,此方法的完整定義是publicstaticvoidmain(Stringargs)。

6.Java類名的每個單詞的首字母尋常要求大寫。

1.7.2選擇題

1.推出Java語言的公司是B。A.IBMA.path

B.SUN

C.Apple

D.Microsoft

D、TEMP

2.下面的哪個環(huán)境變量是java解釋時所需要的?BB.classpath

C.JAVA_HOME

1.7.3判斷題

1.Java語言屬于編譯型的開發(fā)語言。2.JavaApplication程序不是由main()方法開始執(zhí)行的。

(×)(×)

1.7.4簡答題

1.簡述Java實現(xiàn)可移值性的基本原理。

答:Java屬于編譯型和解釋型的編程語言,所有的*.java程序必需編譯為*.class文件后才可

Java核心技術(shù)精講以在電腦上執(zhí)行,而執(zhí)行*.class文件的電腦并不是一臺真實的電腦,而是利用軟件和硬件模擬出來的一臺虛擬電腦,稱為Java虛擬機,而針對不同的操作系統(tǒng)平臺,有不同版本的Java虛擬機,即由Java虛擬機去適應(yīng)不同的操作系統(tǒng),只要Java虛擬機的支持沒有改變,同一個*.class可以在不同的平臺上運行。2.簡述Java語言的三個程序分支。Note答:JavaSE(Java標(biāo)準(zhǔn)版):提供基礎(chǔ)的Java類庫及平臺支持。JavaME(Java微型版):提供嵌入式開發(fā)支持。JavaEE(Java企業(yè)版):提供企業(yè)平臺支持。3.簡述Java中path及classpath的作用。答:Path:是操作系統(tǒng)的環(huán)境屬性,指的是可以執(zhí)行命令的程序路徑。CLASSPATH:是所有*.class文件的執(zhí)行路徑,java命令執(zhí)行的時候?qū)⒗么寺窂郊虞d所需要的*.class文件。4.簡述Java語言的主要特點。答:Java語言的主要特點如下:(1)Java語言是一門面向?qū)ο笳Z言,且語法足夠簡單;(2)Java避免了C/C++中繁雜的指針關(guān)系,而使用了更為簡單的引用方式來進行內(nèi)存?zhèn)鬟f;(3)Java是為數(shù)不多的支持多線程開發(fā)的編程語言;(4)Java提供了自動的垃圾收集機制,可以定期釋放出無用的垃圾空間;(5)Java語言的安全性較高;(6)Java最大的特點是具備可移植性,即:同一個程序在不同的操作系統(tǒng)上都可以運行。1.7.5編程題1.在屏幕上輸出:“我喜歡學(xué)習(xí)Java〞的信息。答案:publicclassTestDemo{publicstaticvoidmain(String[]args){System.out.println(\我喜歡學(xué)習(xí)Java\}}2.在屏幕上打印出以下圖形:**********************************************Java程序設(shè)計**********************************************答案:publicclassTestDemo{publicstaticvoidmain(String[]args){System.out.println(\System.out.println(\Java程序設(shè)計*********\System.out.println(\488附錄B參考答案489Note}}Java核心技術(shù)精講第2章簡單Java程序——實踐與練習(xí)Note2.9.1填空題1.Java中的標(biāo)識符組成原則:由字母、數(shù)字、下劃線、$所組成,其中不能以數(shù)字開頭,不能是Java的關(guān)鍵字。2.a(chǎn)ssert關(guān)鍵字是在JDK1.4時參與的,enum關(guān)鍵字是在JDK1.5時參與的。3.列舉出已經(jīng)知道的5個關(guān)鍵字:public、static、void、int、double。4.Java解釋分為以下三種:單行解釋(//)、多行解釋(/*…*/)、文檔解釋。5.Java中使用int關(guān)鍵字,可以定義一個整型數(shù)據(jù)。6.在一個Java源文件中定義了3個類和15個方法,編譯該Java源文件時會產(chǎn)生3個字節(jié)碼文件,其擴展名是*.class。7.布爾型數(shù)據(jù)類型的關(guān)鍵字是boolean,有true和false兩種取值。8.整型數(shù)可以采用byte、short、int和long4種類型表示。9.根據(jù)占用內(nèi)存長度的不同將浮點型分為float和double兩種。10.Java程序結(jié)構(gòu)分為:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)3種。11.規(guī)律表達式:true的輸出結(jié)果是B。A.1B.3C.3.3D.3.3333311.執(zhí)行下面的語句后,a、b、c的值分別是C。inta=2;intb=(a++)*3;intc=(++a)*3;A.2、6、6B.4、9、9C.4、6、12D.3、9、912.以下的B能正確表示Java語言中的一個整型常量。A.35.dB.-20C.1,234D.\13.下面的數(shù)據(jù)類型D是float型A.33.8B.129C.89LD.8.6F14.以下關(guān)于自動類型轉(zhuǎn)換的說法中,正確的一個是B。A.int類型數(shù)據(jù)可以自動轉(zhuǎn)換為char類型數(shù)據(jù)B.char類型數(shù)據(jù)可以被自動轉(zhuǎn)換為int類型數(shù)據(jù)C.boolean類型數(shù)據(jù)不可以做自動類型轉(zhuǎn)換,但是可以做強制轉(zhuǎn)換D.long類型數(shù)據(jù)可以被自動轉(zhuǎn)換為short類型數(shù)據(jù)15.一個方法在定義過程中又調(diào)用自身,這種方法稱為B。A.構(gòu)造方法B.遞歸方法C.成員方法D.抽象方法Note2.9.3判斷題1.變量的內(nèi)容可以修改,常量的內(nèi)容不可修改。(√)2.goto是Java中未使用到的關(guān)鍵字。(√)3.enum關(guān)鍵字是在JDK1.4版本中增加的。(×)4.使用publicclass定義的類,文件名稱可以與類名稱不一致。(×)5.主方法編寫:publicvoidmain(Stringarg)。(×)6.字符$不能作Java標(biāo)識符的第一個字符。(×)7.System.out.println()輸出后是不加換行的,而System.out.print()輸出后是加換行的。(×)491

Java核心技術(shù)精講(×)(×)(×)(×)(√)(×)(√)(×)Note8.使用break語句可以跳出一次循環(huán)。9.byte的取值范圍是:0~255。10.int和double進行加法操作,int會自動轉(zhuǎn)換為double類型。11.使用“}publicstaticintadd(intx,inty,intz){returnx+y+z;}publicstaticdoubleadd(doublex,doubley){returnx+y;}2.9.5編程題1.打印出100~1000范圍內(nèi)的所有“水仙花數(shù)〞,所謂“水仙花數(shù)〞是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一個“水仙花數(shù)〞,由于153=1的三次方+5的三次方+3的三次方。答案:publicclassTestDemo{publicstaticvoidmain(String[]args){inti,j,k;for(intx=100;x

}}classBextendsA{voidtest(){super.test();System.out.println(\}}附錄B參考答案NoteB.代碼可以編譯運行,并輸出結(jié)果:ABD.編譯沒有錯誤,但會運行時會產(chǎn)生異常A.產(chǎn)生編譯錯誤C.代碼可以編譯運行,但沒有輸出15.編譯運行下面的程序,結(jié)果是A。publicclassA{publicstaticvoidmain(Stringargs[]){Bb=newB();b.test();}publicvoidtest(){System.out.print(\}}classBextendsA{voidtest(){super.test();System.out.println(\}}A.產(chǎn)生編譯錯誤,由于類B覆蓋類A的方法test()時,降低了其訪問控制的級別B.代碼可以編譯運行,并輸出結(jié)果:ABC.代碼可以編譯運行,但沒有輸出D.代碼可以編譯運行,并輸出結(jié)果:A16.下面B修飾符所定義的方法必需被子類所覆寫。A.finalB.a(chǎn)bstractC.staticD.interface17.下面A修飾符所定義的方法不能被子類所覆寫。A.finalB.a(chǎn)bstractD.staticD.interface18.下面的程序編譯運行的結(jié)果是A。publicclassAimplementsB{publicstaticvoidmain(Stringargs[]){intm,n;Aa=newA();m=a.K;n=B.K;System.out.println(m+\,\}}interfaceB{intK=5;497Java核心技術(shù)精講}A.5,5B.0,5C.0,0D.編譯程序產(chǎn)生編譯結(jié)果19.下面關(guān)于接口的說法中不正確的是C。A.接口所有的方法都是抽象的NoteB.接口所有的方法一定都是public類型C.用于定義接口的關(guān)鍵字是implementsD.接口是Java中的特別類,包含全局常量和抽象方法20.下面關(guān)于Java的說法不正確的是AA.a(chǎn)bstract和final能同時修飾一個類B.抽象類不光可以做父類,也可以做子類C.抽象方法不一定聲明在抽象類中,也可以在接口中D.聲明為final的方法不能在子類中覆寫3.34.3判斷題1.沒有實例化的對象不能使用。2.不可以為類定義多個構(gòu)造方法。3.使用static聲明的方法可以調(diào)用非static聲明的方法。4.非static聲明的方法可以調(diào)用static聲明的屬性或方法。5.String對象可以使用==進行內(nèi)容的比較。6.垃圾是指無用的內(nèi)存空間,會被垃圾收集機制回收。7.構(gòu)造方法可以有返回值類型的聲明。8.匿名對象是指使用一次的對象,使用之后將等待被垃圾回收。9.使用static定義的內(nèi)部類就成為外部類。10.多個實例化對象之間不會相互影響,由于保存在不同的內(nèi)存區(qū)域之中。11.final聲明的類可以有子類。12.一個類繼承了抽象類,則抽象類中的抽象方法需要在其子類中覆寫。13.final類型的變量是常量,其內(nèi)容不可改變。14.一個類不能既是子類又是父類。15.子類只能繼承父類的成員,但不能修改父類成員。16.Java語言只支持單繼承,不支持多繼承。17.子類可以繼承父類的所有成員。18.一個接口可以繼承一個抽象類。19.一個接口可以同時繼承多個接口。20.在程序中,this和super調(diào)用構(gòu)造方法時可以同時出現(xiàn)。498√)×)×)√)×)√)×)√)√)√)×)√)√)√)×)√)√)×)√)×)((((((((((((((((((((附錄B參考答案3.34.4簡答題1.String類的操作特點。答:String類的對象有兩種實例化方式。?方式一:直接賦值,只開拓一塊堆內(nèi)存空間,并且對象可以入池;?方式二:構(gòu)造方法,開拓兩塊堆內(nèi)存空間,有一塊將稱為垃圾,不會自動入池,使用intern()方法手工入池。String對象的比較方法如下所示。?==:比較的是兩個字符串對象的內(nèi)存地址數(shù)值;?equals():字符串內(nèi)容比較。字符串對象一旦聲明,則內(nèi)容不可改變,改變的只能是字符串對象的地址指向。2.簡述垃圾對象的產(chǎn)生。答:垃圾指的是一塊無用的引用內(nèi)存,當(dāng)將變量設(shè)置為null或者長時間不使用時,就將成為垃圾。3.static方法如何調(diào)用?非static方法如何調(diào)用?答:static方法可以使用類名稱或?qū)嵗瘜ο笳{(diào)用,而非static方法只能依靠實例化對象才可以調(diào)用。4.類與對象的關(guān)系是什么?如何創(chuàng)立及使用對象?答:類規(guī)定了對象所具有的屬性及行為(方法),類只有通過產(chǎn)生對象才可以分派屬性或者是調(diào)用方法,對象的創(chuàng)立依靠關(guān)鍵字new創(chuàng)立。5.舉例說明子類對象的實例化過程。答:當(dāng)通過關(guān)鍵字new實例化子類對象時,會默認(rèn)調(diào)用父類的無參構(gòu)造方法,為父類對象實例化,而后才會調(diào)用子類的構(gòu)造方法,為子類對象實例化。6.簡述this與super關(guān)鍵字的區(qū)別。答:this和super都可以調(diào)用類中的屬性、方法、構(gòu)造方法,但是this調(diào)用的是本類操作,而super是由子類調(diào)用父類操作。7.簡述方法的重載與覆寫的區(qū)別。答:方法重載是發(fā)生在一個類中,方法名稱一致、參數(shù)的類型及個數(shù)不同,不受權(quán)限的限制。而覆寫是發(fā)生在繼承關(guān)系之中,子類和父類定義了方法名稱一致、參數(shù)類型及個數(shù)、返回值類型完全一致的方法時所發(fā)生的操作,在子類覆寫父類方法時,被覆寫的方法不能擁有比父類更嚴(yán)格的訪問權(quán)限。8.在已有類的基礎(chǔ)上派生新的類有什么好處?答:擴展已有類的功能,并且利用方法的覆寫擴展已有方法的功能。9.如何區(qū)分子類和父類?子類可以繼承父類的哪些內(nèi)容?答:子類使用extends繼承父類或使用implements實現(xiàn)多個接口,子類可以繼承父類中的全部內(nèi)容,但是對于私有操作屬于隱式繼承,而非私有操作屬于顯式繼承。10.什么是多態(tài)?實現(xiàn)多態(tài)的方法有哪些?答:多態(tài)是面向?qū)ο蟮淖罱K一個主要特征,它本身主要分為兩個方面。?方法的多態(tài)性:重載與覆寫?重載:同一個方法名稱,根據(jù)不同的參數(shù)類型及個數(shù)可以完成不同的功能;?覆寫:同一個方法,根據(jù)操作的子類不同,所完成的功能也不同。Note499Java核心技術(shù)精講?對象的多態(tài)性:父子類對象的轉(zhuǎn)換。?向上轉(zhuǎn)型:子類對象變?yōu)楦割悓ο?,格式:父類父類對?子類實例,自動;?向下轉(zhuǎn)型:父類對象變?yōu)樽宇悓ο?,格式:子類子類對?(子類)父類實例,強制;11.接口有哪些特征?如何定義和實現(xiàn)接口?答:接口之中全部由全局常量及抽象方法所組成,一個類可以同時實現(xiàn)多個接口,在Java中使用interface定義接口,子類使用implements實現(xiàn)接口。Note12.接口和抽象類有哪些區(qū)別?答:抽象類及接口區(qū)別如下。No.1234567區(qū)別抽象類接口定義關(guān)鍵字abstractclassinterface組成常量、變量、抽象方法、普通方法、構(gòu)造方法全局常量、抽象方法權(quán)限關(guān)系使用設(shè)計模式局限可以使用各種權(quán)限一個抽象類可以實現(xiàn)多個接口子類使用extends繼承抽象類模板設(shè)計模式一個子類只能夠繼承一個抽象類只能是public接口不能夠繼承抽象類,卻可以繼承多接口子類使用implements實現(xiàn)接口工廠設(shè)計模式、代理設(shè)計模式一個子類可以實現(xiàn)多個接口抽象類和接口的對象都是利用對象多態(tài)性的向上轉(zhuǎn)型,進行接口或抽象類的實例化操作13.簡述基本數(shù)據(jù)類型的自動裝箱及自動拆箱操作。答:在JDK1.5后,基本數(shù)據(jù)類型可以采用直接賦值的方式為包裝類進行對象的實例化操作,而包裝類的對象也可以通過直接賦值的方式變回基本數(shù)據(jù)類型。3.34.5編程題1.編寫并測試一個代表地址的Address類,地址信息由國家、省份、城市、街道和郵編組成,并可以返回完整的地址信息。答案:classAddress{privateStringnational;privateStringprovincial;privateStringcity;privateStringstreet;privateStringzipcode;publicAddress(){}publicAddress(Stringnational,Stringprovincial,Stringcity,Stringstreet,Stringzipcode){super();this.national=national;vincial=provincial;this.city=city;this.street=street;this.zipcode=zipcode;500附錄B參考答案}publicStringtoString(){return\國家:\this.national+\,省份:\vincial+\,城市:\+this.city+\,街道:\this.street+\,郵政編碼:\this.zipcode;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Addressad=newAddress(\中國\北京\北京市\(zhòng)System.out.println(ad);}}Note程序運行結(jié)果:國家:中國,省份:北京,城市:北京市,街道:MLDN,郵政編碼:1000882.定義并測試一個代表員工的Employee類,員工屬性包括編號、姓名、基本薪水和薪水增長額,還包括計算增長后的工資總額。答案:classEmployee{privateintempno;//雇員編號privateStringename;//雇員姓名privatedoublesal;//基本工資privatedoublerate;//工資增長額publicEmployee(){}publicEmployee(intempno,Stringename,doublesal,doublerate){super();this.empno=empno;this.ename=ename;this.sal=sal;this.rate=rate;}publicStringtoString(){return\雇員編號:\this.empno+\,雇員姓名:\this.ename+\,基本工資:\this.sal;}publicvoidgrowthin(){//增長薪水this.sal=this.sal*this.rate;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Employeeemp=newEmployee(7369,\emp.growthin();//工資增長System.out.println(emp);}501

Java核心技術(shù)精講}程序運行結(jié)果:雇員編號:7369,雇員姓名:SMITH,基本工資:1500.03.編寫程序,從字符串“wantyoutoknowonething〞中統(tǒng)計出字母“n〞的出現(xiàn)次數(shù)。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\//定義字符串intsum=0;while(str.indexOf(\//是否還有字母nsum++;//數(shù)據(jù)統(tǒng)計量增加str=str.substring(str.indexOf(\//改變字符串內(nèi)容}System.out.println(\字母n的出現(xiàn)次數(shù):\}}Note程序運行結(jié)果:字母n的出現(xiàn)次數(shù):44.設(shè)計一個Dog類,有名字、顏色、年齡等屬性,定義構(gòu)造方法來初始化類的這些屬性,定義方法輸出Dog信息。編寫應(yīng)用程序使用Dog類。答案:classDog{privateStringname;privateStringcolor;privateintage;publicDog(){}publicDog(Stringname,Stringcolor,intage){super();=name;this.color=color;this.age=age;}publicStringtoString(){return\狗的名字:\+\,狗的顏色:\this.color+\,狗的年齡:\this.age;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Dogdog=newDog(\金毛\金黃色\System.out.println(dog);}}502附錄B參考答案程序運行結(jié)果:狗的名字:金毛,狗的顏色:金黃色,狗的年齡:35.字符串操作:?從字符串“MLDN中心Java技術(shù)學(xué)習(xí)班20230214〞中提取開班日期。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\中心Java技術(shù)學(xué)習(xí)班20230214\System.out.println(str.substring(str.indexOf(\}}Note程序運行結(jié)果:20230214?將“MLDNJAVA高端技術(shù)培訓(xùn)〞字符串中的“JAVA〞替換為“JAVAEE〞。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\高端技術(shù)培訓(xùn)\System.out.println(str.replaceAll(\}}程序運行結(jié)果:MLDNJAVAEE高端技術(shù)培訓(xùn)?取出“Java技術(shù)學(xué)習(xí)班20230214〞中的第8個字符。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\技術(shù)學(xué)習(xí)班20230214\System.out.println(str.charAt(8));}}程序運行結(jié)果:班?清除“Java技術(shù)學(xué)習(xí)班20230214〞中的所有“0〞。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\技術(shù)學(xué)習(xí)班20230214\System.out.println(str.replaceAll(\}}503Java核心技術(shù)精講Note程序運行結(jié)果:Java技術(shù)學(xué)習(xí)班213214?從任意給定的身份證號碼中提取此人的出生日期。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\System.out.println(str.substring(6,14));}}程序運行結(jié)果:197609196.編寫一個銀行賬戶類,類的構(gòu)成包括:?數(shù)據(jù)成員用戶的賬戶名稱、用戶的賬戶余額;?方法開戶(設(shè)置賬戶名稱及余額),利用構(gòu)造方法完成?查詢余額答案:classAccount{privateStringname;privatedoublebalance;publicAccount(){}publicAccount(Stringname,doublebalance){super();=name;this.balance=balance;}publicStringtoString(){return\賬戶名稱:\+\,余額:\this.balance;}publicdoublegetBalance(){returnbalance;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Accountacc=newAccount(\張三\System.out.println(acc);System.out.println(\賬戶余額:\}}504附錄B參考答案程序運行結(jié)果:賬戶名稱:張三,余額:5000.0賬戶余額:5000.07.定義一個ClassName接口,接口中只有一個抽象方法getClassName()。設(shè)計一個類Company,該類實現(xiàn)接口ClassName中的方法getClassName(),功能是獲取該類的類名稱。編寫應(yīng)用程序使用Company類。答案:interfaceClassName{publicStringgetClassName();}classCompanyimplementsClassName{publicStringgetClassName(){return\}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){ClassNamename=newCompany();System.out.println(name.getClassName());}}Note程序運行結(jié)果:Company8.建立一個人類(Person)和學(xué)生類(Student),其功能要求:(1)Person中包含4個保護型的數(shù)據(jù)成員name、address、sex、age,分別為字符串、字符串、字符及整型,表示姓名、地址、性別和年齡。一個4參構(gòu)造方法、一個無參構(gòu)造方法及一個輸出方法用于顯示4種屬性。(2)Student繼承Person,并增加輸出成員math、english存放數(shù)學(xué)和英語成績。一個6參構(gòu)造方法、一個兩參構(gòu)造方法,一個無參構(gòu)造方法,重寫輸出方法用于顯示全部6種屬性。答案:classPerson{privateStringname;privateStringaddress;privatecharsex;privateintage;publicPerson(){}publicPerson(Stringname,Stringaddress,charsex,intage){super();=name;this.address=address;this.sex=sex;this.age=age;505Java核心技術(shù)精講Note}publicStringtoString(){return\姓名:\+\,地址:\this.address+\,性別:\this.sex+\,年齡:\this.age;}//setter、getter略}classStudentextendsPerson{privatedoublemath;privatedoubleenglish;publicStudent(){}publicStudent(Stringname,Stringaddress,charsex,intage,doublemath,doubleenglish){super(name,address,sex,age);this.math=math;this.english=english;}publicStringtoString(){returnsuper.toString()+\,數(shù)學(xué)成績:\this.math+\,英語成績:\this.english;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Studentstu=newStudent(\張三\北京西城區(qū)甲11號德外大街德勝科技園美江大廈A座-6層\男',25,90.0,99.0);System.out.println(stu);}}程序運行結(jié)果:姓名:張三,地址:北京西城區(qū)甲11號德外大街德勝科技園美江大廈A座-6層,性別:男,年齡:25,數(shù)學(xué)成績:90.0,英語成績:99.09.定義員工類,具有姓名、年齡、性別屬性,并具有構(gòu)造方法、顯示數(shù)據(jù)方法、定義管理層類、繼承員工類,并有自己的屬性:職務(wù)和年薪。定義職員類,繼承員工類,并有自己的屬性:所屬部門和月薪。答案:classEmployee{privateStringname;privateintage;privatecharsex;publicEmployee(){}publicEmployee(Stringname,intage,charsex){super();=name;this.age=age;506

附錄B參考答案this.sex=sex;}publicStringtoString(){return\雇員姓名:\+\,年齡:\this.age+\,性別:\this.sex;}//setter、getter略}classManagerextendsEmployee{privateStringjob;privatedoubleincome;publicManager(){}publicManager(Stringname,intage,charsex,Stringjob,doubleincome){super(name,age,sex);this.job=job;this.income=income;}publicStringtoString(){returnsuper.toString()+\,職位:\this.job+\,年薪:\this.income;}//setter、getter略}classStaffextendsEmployee{privateStringdept;privatedoublesalary;publicStaff(){}publicStaff(Stringname,intage,charsex,Stringdept,doublesalary){super(name,age,sex);this.dept=dept;this.salary=salary;}publicStringtoString(){returnsuper.toString()+\,部門:\this.dept+\,月薪:\this.salary;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Employeeea=newManager(\張三\男',\總監(jiān)\Employeeeb=newStaff(\李四\女',\業(yè)務(wù)部\System.out.println(ea);System.out.println(eb);}}Note程序運行結(jié)果:雇員姓名:張三,年齡:30,性別:男,職位:總監(jiān),年薪:200000.0507Java核心技術(shù)精講雇員姓名:李四,年齡:25,性別:女,部門:業(yè)務(wù)部,月薪:1500.010.定義Shape類表示一般二維圖形。Shape具有抽象方法area和perimeter,分別計算形狀的面積和周長。試定義一些二維形狀類(如矩形、三角形、圓形等),這些類均為Shape類的子類。Note答案:abstractclassShape{publicabstractdoublearea();publicabstractdoubleperimeter();}classRectangleextendsShape{//矩形privatedoublewide;//寬privatedoublelongs;//長publicRectangle(){}publicRectangle(doublewide,doublelongs){super();this.wide=wide;this.longs=longs;}publicdoublearea(){returnthis.longs*this.wide;}publicdoubleperimeter(){return(this.longs+this.wide)*2;}}classTriangleextendsShape{//三角形privatedoubleedgea;//邊長privatedoubleedgeb;//邊長privatedoubleedgec;//邊長publicTriangle(){}publicTriangle(doubleedgea,doubleedgeb,doubleedgec){super();this.edgea=edgea;this.edgeb=edgeb;this.edgec=edgec;}publicdoublearea(){returnthis.edgea*this.edgeb/2;}publicdoubleperimeter(){returnthis.edgea+this.edgeb+this.edgec;}}classRoundextendsShape{//圓形privatedoubleradius;//半徑publicRound(){}508附錄B參考答案publicRound(doubleradius){super();this.radius=radius;}publicdoublearea(){returnthis.radius*this.radius*Math.PI;}publicdoubleperimeter(){returnthis.radius*2*Math.PI;}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Shaperectangle=newRectangle(10.5,20.6);Shapetriangle=newTriangle(10.1,20.2,30.3);Shaperound=newRound(30.3);System.out.println(\矩形面積:\,矩形周長:\System.out.println(\三角形面積:\,三角形周長:\System.out.println(\圓形面積:\,圓形周長:\}}Note程序運行結(jié)果:矩形面積:216.3,矩形周長:62.2三角形面積:102.00999999999999,三角形周長:60.599999999999994圓形面積:2884.2647993342534,圓形周長:190.38051480754146第4章異常的捕獲及處理——實踐與練習(xí)4.11.1填空題1.Throwable下有兩個子類:Error、Exception。2.ArthmeticException類表示算術(shù)異常,ArraysIndexOutOfBoundsException表示數(shù)組越界異常。3.一個try代碼后面必需跟著若干個catch代碼段或者一個finally代碼段。4.假使一個方法使用了throws,則編譯器會強制在使用此方法時進行異常的處理。5.異常處理中使用finally作為異常的統(tǒng)一出口。4.11.2選擇題1.使用以下哪個關(guān)鍵字可以在程序中手工拋出異常?B509Java核心技術(shù)精講A.throwsA.throwsA.tryB.throwB.a(chǎn)ssertB.catchC.a(chǎn)ssertC.classC.throws2.下面A關(guān)鍵字可以用在方法的聲明處。D.classD.interfaceD.finally3.為了捕獲一個異常,代碼必需放在A語句塊中。Note4.下面關(guān)于try塊的說法正確的是C。A.try塊后至少應(yīng)有一個catch塊5.finally塊中的代碼將A。A.總是被執(zhí)行B.假使try塊后面沒有catch塊時,finally塊中的代碼才會執(zhí)行C.異常發(fā)生時才被執(zhí)行D.異常沒有發(fā)生時才執(zhí)行6.一個異常將終止A。A.整個程序B.只終止拋出異常的方法D.上面的說法都不對B.ExceptionC.產(chǎn)生異常的try塊A.ErrorB.try塊后必需有finally塊D.對拋出的異常的處理應(yīng)放在try塊中C.可能拋出異常的方法應(yīng)放在try塊中7.所有異常的共同父類是B。C.ThrowableD.RuntimeException4.11.3判斷題1.一個try語句后有多個catch時,捕獲范圍大的異常要放在捕獲范圍小的異常之后。(√)2.finally語句可以根據(jù)需要有選擇地添加。(√)

4.11.4簡答題1.簡述RuntimeException和Exception的區(qū)別。答:異常(Exception)表示程序運行過程中可能出現(xiàn)的非正常狀態(tài),運行時異常(RuntimeException)表示虛擬機的尋常操作中可能遇到的異常,是一種常見運行錯誤。Java編譯器要求方法必需聲明拋出可能發(fā)生的非運行時異常,但是并不要求必需聲明拋出未被捕獲的運行時異常,即Exception定義了必需處理的異常,而RuntimeException定義的異常可以選擇性地進行處理。2.try、catch、finally3種語句的功能是什么?答:try語句負(fù)責(zé)捕獲程序中產(chǎn)生的異常。catch負(fù)責(zé)匹配異常類型,并且對指定的異常進行處理。finally作為異常處理的統(tǒng)一出口,不管是否發(fā)生異常,都會執(zhí)行本程序。3.簡述Java中的異常處理機制。510附錄B參考答案答:(1)假使程序中產(chǎn)生了異常,那么會自動的由JVM根據(jù)異常的類型,實例化一個指定異常類的對象;(2)假使這個時候程序中沒有任何異常處理操作,則這個異常類的實例化對象將交給JVM進行處理,而JVM的默認(rèn)處理方式就是進行異常信息的輸出,而后中斷程序執(zhí)行;(3)假使程序中存在了異常處理,則會由try語句捕獲產(chǎn)生的異常類對象;(4)與try之后的每一個catch進行匹配,假使匹配成功,則使用指定的catch進行處理,假使沒有匹配成功,則向后面的catch繼續(xù)匹配,假使沒有任何的catch匹配成功這個時候?qū)⒔唤oJVM執(zhí)行默認(rèn)處理;(5)不管是否有異常都會執(zhí)行finally程序,假使此時沒有異常,執(zhí)行完finally,則會繼續(xù)執(zhí)行程序中的其他代碼,假使此時有異常沒有處理(沒有一個catch可以滿足),那么也會執(zhí)行finally,但是執(zhí)行完finally后,將默認(rèn)交給JVM進行異常的信息輸出,并且程序中斷。4.簡述Error和Exception的區(qū)別。答:Error:指的是JVM錯誤,這個時候的程序并沒有執(zhí)行,無法處理。Exception:指的是程序中出現(xiàn)的錯誤信息,可以進行異常處理,主要關(guān)心Exception。5.列舉三個常見的RuntimeException子類。答:NumberFormatException、ClassCastException和NullPointerExceptionNote511

填空題1.package關(guān)鍵字可以定義一個包,import關(guān)鍵字可以導(dǎo)入包。2.Java中存在4種訪問權(quán)限:private、default、protected、public。512附錄B參考答案3.Java中可以使用importstatic包.類.*導(dǎo)入一個類的全部靜態(tài)方法。4.jar命令可以將全部的class打成一個壓縮包。5.Java中java.lang包是自動導(dǎo)入的。6.Java程序分為兩種形式:Applet、Application。5.6.2選擇題1.String和Object類是在A包中定義的。A.java.langA.privateB.java.utilB.defaultC.D.java.sqlD.public2.C權(quán)限是同一包可以訪問,不同包的子類可以訪問,不同包的非子類不可以訪問。C.protected3.以下說法正確的一項為哪一項C。A.java.lang.Integer是接口B.String定義在java.util包中D.Double類在java.lang.Object包中C.Double類在java.lang包中Note4.以下關(guān)于包、類和源文件的描述中,不正確的一項為哪一項C。A.一個包可以包含多個類B.一個源文件中,只能有一個publicclassC.屬于同一個包的類在默認(rèn)狀況不可以相互訪問,必需使用import導(dǎo)入D.系統(tǒng)不會為源文件創(chuàng)立默認(rèn)的包5.定義類時不可能用到的關(guān)鍵字是C。A.finalB.publicC.protectedD.static4.5.3判斷題1.java.lang包必需由用戶手工導(dǎo)入,否則無法使用。2.定義包后類的完整名稱是:包.類名稱。(×)(√)4.5.4簡答題1.簡述包的作用及使用。答:使用包可以將功能近似的類統(tǒng)一管理,同時可以避免項目中同名類名稱沖突問題。2.簡述Java的4種訪問權(quán)限的區(qū)別。答:Java一共有4種訪問控制權(quán)限。?private:只可以在一個類中訪問,其他類不允許訪問;?default:可以在一個包中訪問,但是不同包不允許訪問;?protected:可以在同一個包中和不同包的子類訪問,其他包的類不允許訪問;?public:可以被所有包的類所訪問。513Java核心技術(shù)精講第6章JDK1.5新特性——實踐與練習(xí)Note6.8.1填空題1.在使用泛型類時,沒有指定泛型的類型,則編譯會出現(xiàn)擔(dān)憂全的警告信息,程序在使用時會使用Object類型進行接收。2.通過?extends類指定泛型的上限,通過?super類指定泛型的下限。3.使用?通配符可以接收全部的泛型類型實例,但卻不可修改泛型屬性內(nèi)容。4.Java中通過enum關(guān)鍵字定義一個枚舉,使用此關(guān)鍵字實際上就相當(dāng)于一個類繼承java.lang.Enum。5.枚舉中通過values()方法取得枚舉的全部內(nèi)容。6.Java提供的3個內(nèi)建的Annotation是:@Override、@Deprecated、@SuppressWarnings。6.8.2判斷題1.在枚舉類中可以定義抽象方法,而抽象方法只需要實現(xiàn)一次即可。3.枚舉中定義的構(gòu)造方法可以使用public權(quán)限聲明。(×)(√)(×)

2.枚舉中可以定義構(gòu)造方法,但要求每個枚舉對象都必需調(diào)用此構(gòu)造方法。6.8.3簡答題1.簡述泛型的作用。答:泛型的主要作用是解決對象向下轉(zhuǎn)型所帶來的ClassCastException,使用泛型后,類中的屬性或方法中的參數(shù)類型就由調(diào)用處來決定,而假使調(diào)用處不設(shè)置泛型,為了保證程序不出錯,則會使用Object類型進行定義。2.簡述枚舉的作用及實現(xiàn)特點。答:枚舉定義出了一個類所能使用的幾個實例化對象,枚舉可以直接采用“枚舉類型.對象〞的方式取得類中的實例化對象進行操作。3.簡述JavaSE中3個內(nèi)建的Annotation的作用。答:在JavaSE之中定義了3種Annotation。?@Override:確鑿的方法覆寫;?@Deprecated:某個結(jié)構(gòu)(類、方法、屬性)不再建議使用;?@SuppressWarnings:壓制編譯時所產(chǎn)生的警告信息。514附錄B參考答案6.8.4編程題定義一個品牌電腦的枚舉類,里面只有固定的幾個電腦品牌,如Lenovo、HP、Dell、Apple、Acer。答案:enumComputerBrand{LENOVO(\聯(lián)想\HP(\惠普\DELL(\戴爾\APPLE(\蘋果\ACER(\宏基\privateStringtitle;privateComputerBrand(Stringtitle){this.title=title;}@OverridepublicStringtoString(){returnthis.title;}}Note第7章多線程——實踐與練習(xí)7.8.1填空題1.Java多線程可以依靠繼承Thread類和實現(xiàn)Runnable接口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論