版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——Java試題附參考答案
附錄B參考答案
第1章:Java簡(jiǎn)介——實(shí)踐與練習(xí)
1.7.1填空題
1.Java源程序文件的后綴是*.java,Java字節(jié)碼文件的后綴名稱是*.class。2.Java程序?qū)崿F(xiàn)可移值性,依靠的是JVM。
3.Java語(yǔ)言的三個(gè)分支是:JavaSE、JavaME、JavaEE。
4.Java程序由類組成,假使Java使用publicclass聲明類,則文件名稱必需與類名稱一致。
5.Java執(zhí)行是從main()方法開(kāi)始執(zhí)行的,此方法的完整定義是publicstaticvoidmain(Stringargs)。
6.Java類名的每個(gè)單詞的首字母尋常要求大寫(xiě)。
1.7.2選擇題
1.推出Java語(yǔ)言的公司是B。A.IBMA.path
B.SUN
C.Apple
D.Microsoft
D、TEMP
2.下面的哪個(gè)環(huán)境變量是java解釋時(shí)所需要的?BB.classpath
C.JAVA_HOME
1.7.3判斷題
1.Java語(yǔ)言屬于編譯型的開(kāi)發(fā)語(yǔ)言。2.JavaApplication程序不是由main()方法開(kāi)始執(zhí)行的。
(×)(×)
1.7.4簡(jiǎn)答題
1.簡(jiǎn)述Java實(shí)現(xiàn)可移值性的基本原理。
答:Java屬于編譯型和解釋型的編程語(yǔ)言,所有的*.java程序必需編譯為*.class文件后才可
Java核心技術(shù)精講以在電腦上執(zhí)行,而執(zhí)行*.class文件的電腦并不是一臺(tái)真實(shí)的電腦,而是利用軟件和硬件模擬出來(lái)的一臺(tái)虛擬電腦,稱為Java虛擬機(jī),而針對(duì)不同的操作系統(tǒng)平臺(tái),有不同版本的Java虛擬機(jī),即由Java虛擬機(jī)去適應(yīng)不同的操作系統(tǒng),只要Java虛擬機(jī)的支持沒(méi)有改變,同一個(gè)*.class可以在不同的平臺(tái)上運(yùn)行。2.簡(jiǎn)述Java語(yǔ)言的三個(gè)程序分支。Note答:JavaSE(Java標(biāo)準(zhǔn)版):提供基礎(chǔ)的Java類庫(kù)及平臺(tái)支持。JavaME(Java微型版):提供嵌入式開(kāi)發(fā)支持。JavaEE(Java企業(yè)版):提供企業(yè)平臺(tái)支持。3.簡(jiǎn)述Java中path及classpath的作用。答:Path:是操作系統(tǒng)的環(huán)境屬性,指的是可以執(zhí)行命令的程序路徑。CLASSPATH:是所有*.class文件的執(zhí)行路徑,java命令執(zhí)行的時(shí)候?qū)⒗么寺窂郊虞d所需要的*.class文件。4.簡(jiǎn)述Java語(yǔ)言的主要特點(diǎn)。答:Java語(yǔ)言的主要特點(diǎn)如下:(1)Java語(yǔ)言是一門(mén)面向?qū)ο笳Z(yǔ)言,且語(yǔ)法足夠簡(jiǎn)單;(2)Java避免了C/C++中繁雜的指針關(guān)系,而使用了更為簡(jiǎn)單的引用方式來(lái)進(jìn)行內(nèi)存?zhèn)鬟f;(3)Java是為數(shù)不多的支持多線程開(kāi)發(fā)的編程語(yǔ)言;(4)Java提供了自動(dòng)的垃圾收集機(jī)制,可以定期釋放出無(wú)用的垃圾空間;(5)Java語(yǔ)言的安全性較高;(6)Java最大的特點(diǎn)是具備可移植性,即:同一個(gè)程序在不同的操作系統(tǒng)上都可以運(yùn)行。1.7.5編程題1.在屏幕上輸出:“我喜歡學(xué)習(xí)Java〞的信息。答案:publicclassTestDemo{publicstaticvoidmain(String[]args){System.out.println(\我喜歡學(xué)習(xí)Java\}}2.在屏幕上打印出以下圖形:**********************************************Java程序設(shè)計(jì)**********************************************答案:publicclassTestDemo{publicstaticvoidmain(String[]args){System.out.println(\System.out.println(\Java程序設(shè)計(jì)*********\System.out.println(\488附錄B參考答案489Note}}Java核心技術(shù)精講第2章簡(jiǎn)單Java程序——實(shí)踐與練習(xí)Note2.9.1填空題1.Java中的標(biāo)識(shí)符組成原則:由字母、數(shù)字、下劃線、$所組成,其中不能以數(shù)字開(kāi)頭,不能是Java的關(guān)鍵字。2.a(chǎn)ssert關(guān)鍵字是在JDK1.4時(shí)參與的,enum關(guān)鍵字是在JDK1.5時(shí)參與的。3.列舉出已經(jīng)知道的5個(gè)關(guān)鍵字:public、static、void、int、double。4.Java解釋分為以下三種:?jiǎn)涡薪忉專?/)、多行解釋(/*…*/)、文檔解釋。5.Java中使用int關(guān)鍵字,可以定義一個(gè)整型數(shù)據(jù)。6.在一個(gè)Java源文件中定義了3個(gè)類和15個(gè)方法,編譯該Java源文件時(shí)會(huì)產(chǎn)生3個(gè)字節(jié)碼文件,其擴(kuò)展名是*.class。7.布爾型數(shù)據(jù)類型的關(guān)鍵字是boolean,有true和false兩種取值。8.整型數(shù)可以采用byte、short、int和long4種類型表示。9.根據(jù)占用內(nèi)存長(zhǎng)度的不同將浮點(diǎn)型分為float和double兩種。10.Java程序結(jié)構(gòu)分為:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)3種。11.規(guī)律表達(dá)式:true的輸出結(jié)果是B。A.1B.3C.3.3D.3.3333311.執(zhí)行下面的語(yǔ)句后,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語(yǔ)言中的一個(gè)整型常量。A.35.dB.-20C.1,234D.\13.下面的數(shù)據(jù)類型D是float型A.33.8B.129C.89LD.8.6F14.以下關(guān)于自動(dòng)類型轉(zhuǎn)換的說(shuō)法中,正確的一個(gè)是B。A.int類型數(shù)據(jù)可以自動(dòng)轉(zhuǎn)換為char類型數(shù)據(jù)B.char類型數(shù)據(jù)可以被自動(dòng)轉(zhuǎn)換為int類型數(shù)據(jù)C.boolean類型數(shù)據(jù)不可以做自動(dòng)類型轉(zhuǎn)換,但是可以做強(qiáng)制轉(zhuǎn)換D.long類型數(shù)據(jù)可以被自動(dòng)轉(zhuǎn)換為short類型數(shù)據(jù)15.一個(gè)方法在定義過(guò)程中又調(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.主方法編寫(xiě):publicvoidmain(Stringarg)。(×)6.字符$不能作Java標(biāo)識(shí)符的第一個(gè)字符。(×)7.System.out.println()輸出后是不加換行的,而System.out.print()輸出后是加換行的。(×)491
Java核心技術(shù)精講(×)(×)(×)(×)(√)(×)(√)(×)Note8.使用break語(yǔ)句可以跳出一次循環(huán)。9.byte的取值范圍是:0~255。10.int和double進(jìn)行加法操作,int會(huì)自動(dòng)轉(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ù)〞是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一個(gè)“水仙花數(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.代碼可以編譯運(yùn)行,并輸出結(jié)果:ABD.編譯沒(méi)有錯(cuò)誤,但會(huì)運(yùn)行時(shí)會(huì)產(chǎn)生異常A.產(chǎn)生編譯錯(cuò)誤C.代碼可以編譯運(yùn)行,但沒(méi)有輸出15.編譯運(yùn)行下面的程序,結(jié)果是A。publicclassA{publicstaticvoidmain(Stringargs[]){Bb=newB();b.test();}publicvoidtest(){System.out.print(\}}classBextendsA{voidtest(){super.test();System.out.println(\}}A.產(chǎn)生編譯錯(cuò)誤,由于類B覆蓋類A的方法test()時(shí),降低了其訪問(wèn)控制的級(jí)別B.代碼可以編譯運(yùn)行,并輸出結(jié)果:ABC.代碼可以編譯運(yùn)行,但沒(méi)有輸出D.代碼可以編譯運(yùn)行,并輸出結(jié)果:A16.下面B修飾符所定義的方法必需被子類所覆寫(xiě)。A.finalB.a(chǎn)bstractC.staticD.interface17.下面A修飾符所定義的方法不能被子類所覆寫(xiě)。A.finalB.a(chǎn)bstractD.staticD.interface18.下面的程序編譯運(yùn)行的結(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)于接口的說(shuō)法中不正確的是C。A.接口所有的方法都是抽象的NoteB.接口所有的方法一定都是public類型C.用于定義接口的關(guān)鍵字是implementsD.接口是Java中的特別類,包含全局常量和抽象方法20.下面關(guān)于Java的說(shuō)法不正確的是AA.a(chǎn)bstract和final能同時(shí)修飾一個(gè)類B.抽象類不光可以做父類,也可以做子類C.抽象方法不一定聲明在抽象類中,也可以在接口中D.聲明為final的方法不能在子類中覆寫(xiě)3.34.3判斷題1.沒(méi)有實(shí)例化的對(duì)象不能使用。2.不可以為類定義多個(gè)構(gòu)造方法。3.使用static聲明的方法可以調(diào)用非static聲明的方法。4.非static聲明的方法可以調(diào)用static聲明的屬性或方法。5.String對(duì)象可以使用==進(jìn)行內(nèi)容的比較。6.垃圾是指無(wú)用的內(nèi)存空間,會(huì)被垃圾收集機(jī)制回收。7.構(gòu)造方法可以有返回值類型的聲明。8.匿名對(duì)象是指使用一次的對(duì)象,使用之后將等待被垃圾回收。9.使用static定義的內(nèi)部類就成為外部類。10.多個(gè)實(shí)例化對(duì)象之間不會(huì)相互影響,由于保存在不同的內(nèi)存區(qū)域之中。11.final聲明的類可以有子類。12.一個(gè)類繼承了抽象類,則抽象類中的抽象方法需要在其子類中覆寫(xiě)。13.final類型的變量是常量,其內(nèi)容不可改變。14.一個(gè)類不能既是子類又是父類。15.子類只能繼承父類的成員,但不能修改父類成員。16.Java語(yǔ)言只支持單繼承,不支持多繼承。17.子類可以繼承父類的所有成員。18.一個(gè)接口可以繼承一個(gè)抽象類。19.一個(gè)接口可以同時(shí)繼承多個(gè)接口。20.在程序中,this和super調(diào)用構(gòu)造方法時(shí)可以同時(shí)出現(xiàn)。498√)×)×)√)×)√)×)√)√)√)×)√)√)√)×)√)√)×)√)×)((((((((((((((((((((附錄B參考答案3.34.4簡(jiǎn)答題1.String類的操作特點(diǎn)。答:String類的對(duì)象有兩種實(shí)例化方式。?方式一:直接賦值,只開(kāi)拓一塊堆內(nèi)存空間,并且對(duì)象可以入池;?方式二:構(gòu)造方法,開(kāi)拓兩塊堆內(nèi)存空間,有一塊將稱為垃圾,不會(huì)自動(dòng)入池,使用intern()方法手工入池。String對(duì)象的比較方法如下所示。?==:比較的是兩個(gè)字符串對(duì)象的內(nèi)存地址數(shù)值;?equals():字符串內(nèi)容比較。字符串對(duì)象一旦聲明,則內(nèi)容不可改變,改變的只能是字符串對(duì)象的地址指向。2.簡(jiǎn)述垃圾對(duì)象的產(chǎn)生。答:垃圾指的是一塊無(wú)用的引用內(nèi)存,當(dāng)將變量設(shè)置為null或者長(zhǎng)時(shí)間不使用時(shí),就將成為垃圾。3.static方法如何調(diào)用?非static方法如何調(diào)用?答:static方法可以使用類名稱或?qū)嵗瘜?duì)象調(diào)用,而非static方法只能依靠實(shí)例化對(duì)象才可以調(diào)用。4.類與對(duì)象的關(guān)系是什么?如何創(chuàng)立及使用對(duì)象?答:類規(guī)定了對(duì)象所具有的屬性及行為(方法),類只有通過(guò)產(chǎn)生對(duì)象才可以分派屬性或者是調(diào)用方法,對(duì)象的創(chuàng)立依靠關(guān)鍵字new創(chuàng)立。5.舉例說(shuō)明子類對(duì)象的實(shí)例化過(guò)程。答:當(dāng)通過(guò)關(guān)鍵字new實(shí)例化子類對(duì)象時(shí),會(huì)默認(rèn)調(diào)用父類的無(wú)參構(gòu)造方法,為父類對(duì)象實(shí)例化,而后才會(huì)調(diào)用子類的構(gòu)造方法,為子類對(duì)象實(shí)例化。6.簡(jiǎn)述this與super關(guān)鍵字的區(qū)別。答:this和super都可以調(diào)用類中的屬性、方法、構(gòu)造方法,但是this調(diào)用的是本類操作,而super是由子類調(diào)用父類操作。7.簡(jiǎn)述方法的重載與覆寫(xiě)的區(qū)別。答:方法重載是發(fā)生在一個(gè)類中,方法名稱一致、參數(shù)的類型及個(gè)數(shù)不同,不受權(quán)限的限制。而覆寫(xiě)是發(fā)生在繼承關(guān)系之中,子類和父類定義了方法名稱一致、參數(shù)類型及個(gè)數(shù)、返回值類型完全一致的方法時(shí)所發(fā)生的操作,在子類覆寫(xiě)父類方法時(shí),被覆寫(xiě)的方法不能擁有比父類更嚴(yán)格的訪問(wèn)權(quán)限。8.在已有類的基礎(chǔ)上派生新的類有什么好處?答:擴(kuò)展已有類的功能,并且利用方法的覆寫(xiě)擴(kuò)展已有方法的功能。9.如何區(qū)分子類和父類?子類可以繼承父類的哪些內(nèi)容?答:子類使用extends繼承父類或使用implements實(shí)現(xiàn)多個(gè)接口,子類可以繼承父類中的全部?jī)?nèi)容,但是對(duì)于私有操作屬于隱式繼承,而非私有操作屬于顯式繼承。10.什么是多態(tài)?實(shí)現(xiàn)多態(tài)的方法有哪些?答:多態(tài)是面向?qū)ο蟮淖罱K一個(gè)主要特征,它本身主要分為兩個(gè)方面。?方法的多態(tài)性:重載與覆寫(xiě)?重載:同一個(gè)方法名稱,根據(jù)不同的參數(shù)類型及個(gè)數(shù)可以完成不同的功能;?覆寫(xiě):同一個(gè)方法,根據(jù)操作的子類不同,所完成的功能也不同。Note499Java核心技術(shù)精講?對(duì)象的多態(tài)性:父子類對(duì)象的轉(zhuǎn)換。?向上轉(zhuǎn)型:子類對(duì)象變?yōu)楦割悓?duì)象,格式:父類父類對(duì)象=子類實(shí)例,自動(dòng);?向下轉(zhuǎn)型:父類對(duì)象變?yōu)樽宇悓?duì)象,格式:子類子類對(duì)象=(子類)父類實(shí)例,強(qiáng)制;11.接口有哪些特征?如何定義和實(shí)現(xiàn)接口?答:接口之中全部由全局常量及抽象方法所組成,一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口,在Java中使用interface定義接口,子類使用implements實(shí)現(xiàn)接口。Note12.接口和抽象類有哪些區(qū)別?答:抽象類及接口區(qū)別如下。No.1234567區(qū)別抽象類接口定義關(guān)鍵字abstractclassinterface組成常量、變量、抽象方法、普通方法、構(gòu)造方法全局常量、抽象方法權(quán)限關(guān)系使用設(shè)計(jì)模式局限可以使用各種權(quán)限一個(gè)抽象類可以實(shí)現(xiàn)多個(gè)接口子類使用extends繼承抽象類模板設(shè)計(jì)模式一個(gè)子類只能夠繼承一個(gè)抽象類只能是public接口不能夠繼承抽象類,卻可以繼承多接口子類使用implements實(shí)現(xiàn)接口工廠設(shè)計(jì)模式、代理設(shè)計(jì)模式一個(gè)子類可以實(shí)現(xiàn)多個(gè)接口抽象類和接口的對(duì)象都是利用對(duì)象多態(tài)性的向上轉(zhuǎn)型,進(jìn)行接口或抽象類的實(shí)例化操作13.簡(jiǎn)述基本數(shù)據(jù)類型的自動(dòng)裝箱及自動(dòng)拆箱操作。答:在JDK1.5后,基本數(shù)據(jù)類型可以采用直接賦值的方式為包裝類進(jìn)行對(duì)象的實(shí)例化操作,而包裝類的對(duì)象也可以通過(guò)直接賦值的方式變回基本數(shù)據(jù)類型。3.34.5編程題1.編寫(xiě)并測(cè)試一個(gè)代表地址的Address類,地址信息由國(guó)家、省份、城市、街道和郵編組成,并可以返回完整的地址信息。答案: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\國(guó)家:\this.national+\,省份:\vincial+\,城市:\+this.city+\,街道:\this.street+\,郵政編碼:\this.zipcode;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Addressad=newAddress(\中國(guó)\北京\北京市\(zhòng)System.out.println(ad);}}Note程序運(yùn)行結(jié)果:國(guó)家:中國(guó),省份:北京,城市:北京市,街道:MLDN,郵政編碼:1000882.定義并測(cè)試一個(gè)代表員工的Employee類,員工屬性包括編號(hào)、姓名、基本薪水和薪水增長(zhǎng)額,還包括計(jì)算增長(zhǎng)后的工資總額。答案:classEmployee{privateintempno;//雇員編號(hào)privateStringename;//雇員姓名privatedoublesal;//基本工資privatedoublerate;//工資增長(zhǎng)額publicEmployee(){}publicEmployee(intempno,Stringename,doublesal,doublerate){super();this.empno=empno;this.ename=ename;this.sal=sal;this.rate=rate;}publicStringtoString(){return\雇員編號(hào):\this.empno+\,雇員姓名:\this.ename+\,基本工資:\this.sal;}publicvoidgrowthin(){//增長(zhǎng)薪水this.sal=this.sal*this.rate;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Employeeemp=newEmployee(7369,\emp.growthin();//工資增長(zhǎng)System.out.println(emp);}501
Java核心技術(shù)精講}程序運(yùn)行結(jié)果:雇員編號(hào):7369,雇員姓名:SMITH,基本工資:1500.03.編寫(xiě)程序,從字符串“wantyoutoknowonething〞中統(tǒng)計(jì)出字母“n〞的出現(xiàn)次數(shù)。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\//定義字符串intsum=0;while(str.indexOf(\//是否還有字母nsum++;//數(shù)據(jù)統(tǒng)計(jì)量增加str=str.substring(str.indexOf(\//改變字符串內(nèi)容}System.out.println(\字母n的出現(xiàn)次數(shù):\}}Note程序運(yùn)行結(jié)果:字母n的出現(xiàn)次數(shù):44.設(shè)計(jì)一個(gè)Dog類,有名字、顏色、年齡等屬性,定義構(gòu)造方法來(lái)初始化類的這些屬性,定義方法輸出Dog信息。編寫(xiě)應(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參考答案程序運(yùn)行結(jié)果:狗的名字:金毛,狗的顏色:金黃色,狗的年齡:35.字符串操作:?從字符串“MLDN中心Java技術(shù)學(xué)習(xí)班20230214〞中提取開(kāi)班日期。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\中心Java技術(shù)學(xué)習(xí)班20230214\System.out.println(str.substring(str.indexOf(\}}Note程序運(yùn)行結(jié)果:20230214?將“MLDNJAVA高端技術(shù)培訓(xùn)〞字符串中的“JAVA〞替換為“JAVAEE〞。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\高端技術(shù)培訓(xùn)\System.out.println(str.replaceAll(\}}程序運(yùn)行結(jié)果:MLDNJAVAEE高端技術(shù)培訓(xùn)?取出“Java技術(shù)學(xué)習(xí)班20230214〞中的第8個(gè)字符。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\技術(shù)學(xué)習(xí)班20230214\System.out.println(str.charAt(8));}}程序運(yùn)行結(jié)果:班?清除“Java技術(shù)學(xué)習(xí)班20230214〞中的所有“0〞。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\技術(shù)學(xué)習(xí)班20230214\System.out.println(str.replaceAll(\}}503Java核心技術(shù)精講Note程序運(yùn)行結(jié)果:Java技術(shù)學(xué)習(xí)班213214?從任意給定的身份證號(hào)碼中提取此人的出生日期。答案:publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Stringstr=\System.out.println(str.substring(6,14));}}程序運(yùn)行結(jié)果:197609196.編寫(xiě)一個(gè)銀行賬戶類,類的構(gòu)成包括:?數(shù)據(jù)成員用戶的賬戶名稱、用戶的賬戶余額;?方法開(kāi)戶(設(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參考答案程序運(yùn)行結(jié)果:賬戶名稱:張三,余額:5000.0賬戶余額:5000.07.定義一個(gè)ClassName接口,接口中只有一個(gè)抽象方法getClassName()。設(shè)計(jì)一個(gè)類Company,該類實(shí)現(xiàn)接口ClassName中的方法getClassName(),功能是獲取該類的類名稱。編寫(xiě)應(yīng)用程序使用Company類。答案:interfaceClassName{publicStringgetClassName();}classCompanyimplementsClassName{publicStringgetClassName(){return\}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){ClassNamename=newCompany();System.out.println(name.getClassName());}}Note程序運(yùn)行結(jié)果:Company8.建立一個(gè)人類(Person)和學(xué)生類(Student),其功能要求:(1)Person中包含4個(gè)保護(hù)型的數(shù)據(jù)成員name、address、sex、age,分別為字符串、字符串、字符及整型,表示姓名、地址、性別和年齡。一個(gè)4參構(gòu)造方法、一個(gè)無(wú)參構(gòu)造方法及一個(gè)輸出方法用于顯示4種屬性。(2)Student繼承Person,并增加輸出成員math、english存放數(shù)學(xué)和英語(yǔ)成績(jī)。一個(gè)6參構(gòu)造方法、一個(gè)兩參構(gòu)造方法,一個(gè)無(wú)參構(gòu)造方法,重寫(xiě)輸出方法用于顯示全部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é)成績(jī):\this.math+\,英語(yǔ)成績(jī):\this.english;}//setter、getter略}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Studentstu=newStudent(\張三\北京西城區(qū)甲11號(hào)德外大街德勝科技園美江大廈A座-6層\男',25,90.0,99.0);System.out.println(stu);}}程序運(yùn)行結(jié)果:姓名:張三,地址:北京西城區(qū)甲11號(hào)德外大街德勝科技園美江大廈A座-6層,性別:男,年齡:25,數(shù)學(xué)成績(jī):90.0,英語(yǔ)成績(jī):99.09.定義員工類,具有姓名、年齡、性別屬性,并具有構(gòu)造方法、顯示數(shù)據(jù)方法、定義管理層類、繼承員工類,并有自己的屬性:職務(wù)和年薪。定義職員類,繼承員工類,并有自己的屬性:所屬部門(mén)和月薪。答案: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()+\,部門(mén):\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程序運(yùn)行結(jié)果:雇員姓名:張三,年齡:30,性別:男,職位:總監(jiān),年薪:200000.0507Java核心技術(shù)精講雇員姓名:李四,年齡:25,性別:女,部門(mén):業(yè)務(wù)部,月薪:1500.010.定義Shape類表示一般二維圖形。Shape具有抽象方法area和perimeter,分別計(jì)算形狀的面積和周長(zhǎng)。試定義一些二維形狀類(如矩形、三角形、圓形等),這些類均為Shape類的子類。Note答案:abstractclassShape{publicabstractdoublearea();publicabstractdoubleperimeter();}classRectangleextendsShape{//矩形privatedoublewide;//寬privatedoublelongs;//長(zhǎng)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;//邊長(zhǎng)privatedoubleedgeb;//邊長(zhǎng)privatedoubleedgec;//邊長(zhǎng)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(\矩形面積:\,矩形周長(zhǎng):\System.out.println(\三角形面積:\,三角形周長(zhǎng):\System.out.println(\圓形面積:\,圓形周長(zhǎng):\}}Note程序運(yùn)行結(jié)果:矩形面積:216.3,矩形周長(zhǎng):62.2三角形面積:102.00999999999999,三角形周長(zhǎng):60.599999999999994圓形面積:2884.2647993342534,圓形周長(zhǎng):190.38051480754146第4章異常的捕獲及處理——實(shí)踐與練習(xí)4.11.1填空題1.Throwable下有兩個(gè)子類:Error、Exception。2.ArthmeticException類表示算術(shù)異常,ArraysIndexOutOfBoundsException表示數(shù)組越界異常。3.一個(gè)try代碼后面必需跟著若干個(gè)catch代碼段或者一個(gè)finally代碼段。4.假使一個(gè)方法使用了throws,則編譯器會(huì)強(qiáng)制在使用此方法時(shí)進(jìn)行異常的處理。5.異常處理中使用finally作為異常的統(tǒng)一出口。4.11.2選擇題1.使用以下哪個(gè)關(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.為了捕獲一個(gè)異常,代碼必需放在A語(yǔ)句塊中。Note4.下面關(guān)于try塊的說(shuō)法正確的是C。A.try塊后至少應(yīng)有一個(gè)catch塊5.finally塊中的代碼將A。A.總是被執(zhí)行B.假使try塊后面沒(méi)有catch塊時(shí),finally塊中的代碼才會(huì)執(zhí)行C.異常發(fā)生時(shí)才被執(zhí)行D.異常沒(méi)有發(fā)生時(shí)才執(zhí)行6.一個(gè)異常將終止A。A.整個(gè)程序B.只終止拋出異常的方法D.上面的說(shuō)法都不對(duì)B.ExceptionC.產(chǎn)生異常的try塊A.ErrorB.try塊后必需有finally塊D.對(duì)拋出的異常的處理應(yīng)放在try塊中C.可能拋出異常的方法應(yīng)放在try塊中7.所有異常的共同父類是B。C.ThrowableD.RuntimeException4.11.3判斷題1.一個(gè)try語(yǔ)句后有多個(gè)catch時(shí),捕獲范圍大的異常要放在捕獲范圍小的異常之后。(√)2.finally語(yǔ)句可以根據(jù)需要有選擇地添加。(√)
4.11.4簡(jiǎn)答題1.簡(jiǎn)述RuntimeException和Exception的區(qū)別。答:異常(Exception)表示程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常(RuntimeException)表示虛擬機(jī)的尋常操作中可能遇到的異常,是一種常見(jiàn)運(yùn)行錯(cuò)誤。Java編譯器要求方法必需聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必需聲明拋出未被捕獲的運(yùn)行時(shí)異常,即Exception定義了必需處理的異常,而RuntimeException定義的異??梢赃x擇性地進(jìn)行處理。2.try、catch、finally3種語(yǔ)句的功能是什么?答:try語(yǔ)句負(fù)責(zé)捕獲程序中產(chǎn)生的異常。catch負(fù)責(zé)匹配異常類型,并且對(duì)指定的異常進(jìn)行處理。finally作為異常處理的統(tǒng)一出口,不管是否發(fā)生異常,都會(huì)執(zhí)行本程序。3.簡(jiǎn)述Java中的異常處理機(jī)制。510附錄B參考答案答:(1)假使程序中產(chǎn)生了異常,那么會(huì)自動(dòng)的由JVM根據(jù)異常的類型,實(shí)例化一個(gè)指定異常類的對(duì)象;(2)假使這個(gè)時(shí)候程序中沒(méi)有任何異常處理操作,則這個(gè)異常類的實(shí)例化對(duì)象將交給JVM進(jìn)行處理,而JVM的默認(rèn)處理方式就是進(jìn)行異常信息的輸出,而后中斷程序執(zhí)行;(3)假使程序中存在了異常處理,則會(huì)由try語(yǔ)句捕獲產(chǎn)生的異常類對(duì)象;(4)與try之后的每一個(gè)catch進(jìn)行匹配,假使匹配成功,則使用指定的catch進(jìn)行處理,假使沒(méi)有匹配成功,則向后面的catch繼續(xù)匹配,假使沒(méi)有任何的catch匹配成功這個(gè)時(shí)候?qū)⒔唤oJVM執(zhí)行默認(rèn)處理;(5)不管是否有異常都會(huì)執(zhí)行finally程序,假使此時(shí)沒(méi)有異常,執(zhí)行完finally,則會(huì)繼續(xù)執(zhí)行程序中的其他代碼,假使此時(shí)有異常沒(méi)有處理(沒(méi)有一個(gè)catch可以滿足),那么也會(huì)執(zhí)行finally,但是執(zhí)行完finally后,將默認(rèn)交給JVM進(jìn)行異常的信息輸出,并且程序中斷。4.簡(jiǎn)述Error和Exception的區(qū)別。答:Error:指的是JVM錯(cuò)誤,這個(gè)時(shí)候的程序并沒(méi)有執(zhí)行,無(wú)法處理。Exception:指的是程序中出現(xiàn)的錯(cuò)誤信息,可以進(jìn)行異常處理,主要關(guān)心Exception。5.列舉三個(gè)常見(jiàn)的RuntimeException子類。答:NumberFormatException、ClassCastException和NullPointerExceptionNote511
填空題1.package關(guān)鍵字可以定義一個(gè)包,import關(guān)鍵字可以導(dǎo)入包。2.Java中存在4種訪問(wèn)權(quán)限:private、default、protected、public。512附錄B參考答案3.Java中可以使用importstatic包.類.*導(dǎo)入一個(gè)類的全部靜態(tài)方法。4.jar命令可以將全部的class打成一個(gè)壓縮包。5.Java中java.lang包是自動(dòng)導(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)限是同一包可以訪問(wèn),不同包的子類可以訪問(wèn),不同包的非子類不可以訪問(wèn)。C.protected3.以下說(shuō)法正確的一項(xiàng)為哪一項(xiàng)C。A.java.lang.Integer是接口B.String定義在java.util包中D.Double類在java.lang.Object包中C.Double類在java.lang包中Note4.以下關(guān)于包、類和源文件的描述中,不正確的一項(xiàng)為哪一項(xiàng)C。A.一個(gè)包可以包含多個(gè)類B.一個(gè)源文件中,只能有一個(gè)publicclassC.屬于同一個(gè)包的類在默認(rèn)狀況不可以相互訪問(wèn),必需使用import導(dǎo)入D.系統(tǒng)不會(huì)為源文件創(chuàng)立默認(rèn)的包5.定義類時(shí)不可能用到的關(guān)鍵字是C。A.finalB.publicC.protectedD.static4.5.3判斷題1.java.lang包必需由用戶手工導(dǎo)入,否則無(wú)法使用。2.定義包后類的完整名稱是:包.類名稱。(×)(√)4.5.4簡(jiǎn)答題1.簡(jiǎn)述包的作用及使用。答:使用包可以將功能近似的類統(tǒng)一管理,同時(shí)可以避免項(xiàng)目中同名類名稱沖突問(wèn)題。2.簡(jiǎn)述Java的4種訪問(wèn)權(quán)限的區(qū)別。答:Java一共有4種訪問(wèn)控制權(quán)限。?private:只可以在一個(gè)類中訪問(wèn),其他類不允許訪問(wèn);?default:可以在一個(gè)包中訪問(wèn),但是不同包不允許訪問(wèn);?protected:可以在同一個(gè)包中和不同包的子類訪問(wèn),其他包的類不允許訪問(wèn);?public:可以被所有包的類所訪問(wèn)。513Java核心技術(shù)精講第6章JDK1.5新特性——實(shí)踐與練習(xí)Note6.8.1填空題1.在使用泛型類時(shí),沒(méi)有指定泛型的類型,則編譯會(huì)出現(xiàn)擔(dān)憂全的警告信息,程序在使用時(shí)會(huì)使用Object類型進(jìn)行接收。2.通過(guò)?extends類指定泛型的上限,通過(guò)?super類指定泛型的下限。3.使用?通配符可以接收全部的泛型類型實(shí)例,但卻不可修改泛型屬性內(nèi)容。4.Java中通過(guò)enum關(guān)鍵字定義一個(gè)枚舉,使用此關(guān)鍵字實(shí)際上就相當(dāng)于一個(gè)類繼承java.lang.Enum。5.枚舉中通過(guò)values()方法取得枚舉的全部?jī)?nèi)容。6.Java提供的3個(gè)內(nèi)建的Annotation是:@Override、@Deprecated、@SuppressWarnings。6.8.2判斷題1.在枚舉類中可以定義抽象方法,而抽象方法只需要實(shí)現(xiàn)一次即可。3.枚舉中定義的構(gòu)造方法可以使用public權(quán)限聲明。(×)(√)(×)
2.枚舉中可以定義構(gòu)造方法,但要求每個(gè)枚舉對(duì)象都必需調(diào)用此構(gòu)造方法。6.8.3簡(jiǎn)答題1.簡(jiǎn)述泛型的作用。答:泛型的主要作用是解決對(duì)象向下轉(zhuǎn)型所帶來(lái)的ClassCastException,使用泛型后,類中的屬性或方法中的參數(shù)類型就由調(diào)用處來(lái)決定,而假使調(diào)用處不設(shè)置泛型,為了保證程序不出錯(cuò),則會(huì)使用Object類型進(jìn)行定義。2.簡(jiǎn)述枚舉的作用及實(shí)現(xiàn)特點(diǎn)。答:枚舉定義出了一個(gè)類所能使用的幾個(gè)實(shí)例化對(duì)象,枚舉可以直接采用“枚舉類型.對(duì)象〞的方式取得類中的實(shí)例化對(duì)象進(jìn)行操作。3.簡(jiǎn)述JavaSE中3個(gè)內(nèi)建的Annotation的作用。答:在JavaSE之中定義了3種Annotation。?@Override:確鑿的方法覆寫(xiě);?@Deprecated:某個(gè)結(jié)構(gòu)(類、方法、屬性)不再建議使用;?@SuppressWarnings:壓制編譯時(shí)所產(chǎn)生的警告信息。514附錄B參考答案6.8.4編程題定義一個(gè)品牌電腦的枚舉類,里面只有固定的幾個(gè)電腦品牌,如Lenovo、HP、Dell、Apple、Acer。答案:enumComputerBrand{LENOVO(\聯(lián)想\HP(\惠普\(chéng)DELL(\戴爾\APPLE(\蘋(píng)果\ACER(\宏基\privateStringtitle;privateComputerBrand(Stringtitle){this.title=title;}@OverridepublicStringtoString(){returnthis.title;}}Note第7章多線程——實(shí)踐與練習(xí)7.8.1填空題1.Java多線程可以依靠繼承Thread類和實(shí)現(xiàn)Runnable接口
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)CG(計(jì)算機(jī)圖像)行業(yè)開(kāi)拓第二增長(zhǎng)曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)鈑金加工行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)燃料電池行業(yè)開(kāi)拓第二增長(zhǎng)曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)MLCC行業(yè)并購(gòu)重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)辦公物業(yè)管理行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 包裝禮品行業(yè)深度研究報(bào)告
- 中國(guó)玩具藝眼藝鼻項(xiàng)目投資可行性研究報(bào)告
- 農(nóng)業(yè)生產(chǎn)結(jié)構(gòu)與布局
- 電氣作業(yè)相關(guān)知識(shí)培訓(xùn)課件
- 二零二五年度建筑垃圾運(yùn)輸與再生資源開(kāi)發(fā)合同3篇
- 《水下拋石基床振動(dòng)夯實(shí)及整平施工規(guī)程》
- 現(xiàn)代學(xué)徒制課題:數(shù)字化轉(zhuǎn)型背景下新型師徒關(guān)系構(gòu)建研究(附:研究思路模板、可修改技術(shù)路線圖)
- 9.2溶解度(第2課時(shí))-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 安徽省合肥市包河區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期語(yǔ)文期末試卷
- 2024版食源性疾病培訓(xùn)完整課件
- 2025年中國(guó)蛋糕行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢發(fā)布)
- 護(hù)理組長(zhǎng)年底述職報(bào)告
- 巨量引擎合同范本
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 初中語(yǔ)文:非連續(xù)性文本閱讀練習(xí)(含答案)
- 中考英語(yǔ)過(guò)去將來(lái)時(shí)趣味講解動(dòng)態(tài)課件(43張課件)
評(píng)論
0/150
提交評(píng)論