作業(yè)集-JAVA語言程序設(shè)計作業(yè)集_第1頁
作業(yè)集-JAVA語言程序設(shè)計作業(yè)集_第2頁
作業(yè)集-JAVA語言程序設(shè)計作業(yè)集_第3頁
作業(yè)集-JAVA語言程序設(shè)計作業(yè)集_第4頁
作業(yè)集-JAVA語言程序設(shè)計作業(yè)集_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章測試題―.單選題1:Java技術(shù)是由_______公司推出來的。(A)SunMicrosystems(B)Microsoft(C)IBM(D)BEA。答案A2:對Java相關(guān)的技術(shù)敘述正確的_______。(A)Java僅僅是一種編程語言;(B)Java只是一種虛擬的平臺;(C)Java即是開發(fā)環(huán)境又是開發(fā)平臺;(D)Java就是JavaScript。答案C3:對Java的特點敘述不正確的是_______。(A)Java是一種筒單.小型的語言;(B)Java中沒有了指針?biāo)惴?,但實際上還是隱藏了指針;(C)Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計語言;(D)Java是一種絕對安全的語言。答案D4:對Java的平臺無關(guān)性敘述不正確的是_______。(A)用Java編寫的程序可以很容易地移植到其他硬件平臺上;(B)用Java編寫的程序可以很容易地移植到其他軟件平臺上;(C)用Java編寫的程序可以不加修改地移植到任何平臺上;(D)Java并沒有實現(xiàn)完全的跨平臺。答案D5:對JVM敘述不正確的是_______。(A)JVM的全稱是JavaVirtualMachine;(B)JVM是一種計算機硬件技術(shù),它是Java程序的運行平臺;(C)JVM是在計算機硬件系統(tǒng)上用軟件實現(xiàn)的一臺假想機;(D)Java程序在執(zhí)行時,JVM把Java字節(jié)碼解釋成機器碼。答案B6:對Java語言的特點描述不正確的是_______。(A)Java是一個迅速發(fā)展的網(wǎng)絡(luò)編程語言,它是一種新的計算概念;(B)它簡單.面向?qū)ο?分布式.解釋執(zhí)行.不依賴于機器的結(jié)構(gòu);(C)具有可移植性.魯棒性.安全性,并且是多線程的.動態(tài)的,具有很高的性能;(D)Java沒有利用網(wǎng)絡(luò)。答案D7:對象不具有的性質(zhì)是_______。(A)封裝性(B)繼承性(C)多態(tài)性(D)重載性。答案D8:下列標(biāo)識符中_______是Java中的關(guān)鍵字。(A)import(B)include(C)define(D)end答案A9:Java(JDKl.O)正是發(fā)表于_______。(A)1996年5月;(B)1995年5月;(C)1994年6月;(D)1995年4月。答案B10:下列不是Java開發(fā)工具的是_______。(A)Java解釋器; (B)Javah頭文件生成器;(C)Java編譯器; (D).JavadocAPI文件產(chǎn)生器。答案C二.填空題1:Java的語言特點有_______。答案簡單,面向?qū)ο螅植际?,解釋?zhí)行,魯棒,安全,體系結(jié)構(gòu)中立,可移植,髙性能,多線程,以及動態(tài)性2:Java的口號是_______。答案WriteOnce,RunAnywhere3:Java程序分為_______和_______。答案Java應(yīng)用程序。Java小程序4:對Java小程序來說,它必須作為_______類或_______類的一個子類,繼承_______或_______類的類是小程序的主類答案Applet。JApplet。Applet。JApplet5:常用的Java程序開發(fā)工具有_______,_______,_______。答案美國Sun公司的JavaSDK,NetBeans。微軟公司的VisualJ++。Borland公司的JBuilder等6:JavaSDK的意思是_______。答案SoftwareDevelopmentkit7:Java命令行方式的編程環(huán)境由一系列_______,_______,_______。答案目錄文件。類庫字節(jié)碼文件。動態(tài)連接庫DLL文件8:Java應(yīng)用程序和Java小程序的主要區(qū)別是_______。答案小程序中沒有main()方法9:一個源文件中最多只能有一個_______類,其他類的個數(shù)_______。答案Public。無限10:包語句的標(biāo)識符是_______,引入語句的標(biāo)識符是_______,接口定義的標(biāo)識符是_______,類定義的標(biāo)識符是_______。答案Package。IerfaceDefinition。classDefinition三.簡答題1:什么叫Java虛擬機?答案Java虛擬機是一個想象中的機器,在實際的計算機上i過軟件模擬來實現(xiàn)。Java虛擬機有自己想象中的硬件,如處理器.堆棧.寄存器等,還具有相應(yīng)的指令系統(tǒng)。2:Java程序分哪兩類?各有什么特點答案Java程序有Java應(yīng)用程序和Java小程序,無論是Java應(yīng)用程序還是Java小程序,它們都是以類為基礎(chǔ)構(gòu)建的。Java應(yīng)用程序中有main()函數(shù),而Java小程序沒有。3:寫出顯示信息為”welcometoJavaword!”的Java小程序。答案importJava.awt.Graphics;importJava.applet.AppletpublicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawstring("welcometoJavaword!!!",20,20);}}4:Java的開發(fā)工具有哪些?各有什么作用?答案常用的Java程序開發(fā)工具有:美國Sun公司的JavaSDK,NetBeans;微軟公司的VisualJ++;Borland公司的JBuilder等。目前JavaSDK是命令行開發(fā)工具,而NetBeans,VisualJ++JBuilder是集成環(huán)境開發(fā)工具。5:Java應(yīng)用程序和小程序的開發(fā)上有什么不同的地方嗎?答案Java應(yīng)用程序和小程序開發(fā)有共同的步驟如:創(chuàng)建新程序.輸入和編輯程序.對程序進行編譯。但編譯之后還需要為Java小程序創(chuàng)建相應(yīng)的HTML網(wǎng)頁文件,步驟為:創(chuàng)建HTML文件.輸入HTML文件.運行HTML文件。第二章測試題一.單選題1:下面對標(biāo)識符的說法不正確的是_______。(A)標(biāo)識符可以以數(shù)字開頭; (B)標(biāo)識符可以以字母開頭;(C)標(biāo)識符可以以下劃線開頭; (D)標(biāo)識符可以以美元符號開頭。答案A2:以下不屬于Java分隔符的是_______。(A)單行和多行注釋; (B)空格.回車和制表符;(C)句號.引號; (D)大括號.分號.逗號和冒號。答案C3:下列_______數(shù)據(jù)類型是Java和C不同的。(A)接口; (B)數(shù)組;(C)字符串; (D)大括號.分號.逗號和冒號。答案A4:以下變量定義方式正確的是_______。(A)類型標(biāo)識符[[=初始賦值];標(biāo)識符];(B)類型標(biāo)識符[[=初始賦值],標(biāo)識符];(C)類型標(biāo)識符[[=初始賦值]標(biāo)識符];(D)類型標(biāo)識符[[初始賦值],標(biāo)識符]。答案B5:以下_______運算符返回的是bool的類型。(A)&&.; (B)||; (C)!; (D)0。答案D6:關(guān)于bool類型說法不正確的是_______。(A)其完整寫法為boolean;(B)布爾數(shù)據(jù)只有兩個值:true和false;(C)可以如下方式定義布爾變量:boolean mouseon=true;(D)Java中的布爾類型不能轉(zhuǎn)換成數(shù)字。答案C7:缺省值錯誤的是_______。(A)數(shù)值數(shù)據(jù),缺省數(shù)值為相應(yīng)類型的零;(B)字符的缺省初值為\0000;(C)布爾初值為false.;(D)Object類型初值為null。答案B8:下列對運算符的說法不正確的是_______。(A)++和--是算術(shù)運算符;(B)Java語言對運算符的優(yōu)先級.結(jié)合性和求值順序有明確的規(guī)定;(C)+,-,*,/和%運算符改變操作數(shù)的值;(D)!=(不等于)和==(等于)是雙目運算符。答案C9:下列不是Java數(shù)值計算方法的是_______abs(),sin(),cos()tan(),asin(),acos()floorO,pow(a,b)strcopy(),conn()答案D二.填空題1:Java標(biāo)識符是大小寫_______(敏感/不敏感)的,_______(沒有/有) 字符數(shù)的限制。答案敏感。沒有2:保留字(reservedword)又稱為_______,是Java語言本身使用的標(biāo)識符,它有其特定的語法含義。所有的Java保留字將不能被用做_______。答案關(guān)鍵字。標(biāo)識符3:程序中所處理的數(shù)據(jù)表現(xiàn)為_______和_______兩種形式。答案常量。變量4:Java的整型常數(shù)有_______、_______和_______三種形式。答案十進制。十六進制。八進制5:Java的實型常量有標(biāo)準(zhǔn)和科學(xué)計數(shù)法兩種表現(xiàn)形式。標(biāo)準(zhǔn)形式由_______和_______組成,且必須有_______,如_______等??茖W(xué)計數(shù)法形式,數(shù)字中帶_______。答案數(shù)字。小數(shù)點。小數(shù)點。0.123,4.56,789.0。e或E6:字符型char數(shù)據(jù)是由一對_______括起來的單個字符。Java使用_______的16位字符集,而不僅僅為_______字符集,因此char類型的范圍_______。答案單引號。Unicode格式。ASCII。0到655357:字符串常量是用_______括起來的零個或多個字符(包括轉(zhuǎn)義字符)。例如:空串為_______。答案雙引號。""8:在Java語言中,毎個字符串常量被作為字符串類_______的對象來處理。答案String9:在Java語言中,字符串變暈是對象,是_______(復(fù)合類型/簡簡單類型)。有_______和_______兩種字符串變量類String類是常量類,初始化后不能改變StringBuffer類是_______,可以修改。答案復(fù)合類型。Strig類。StringBuffer類。字符串緩沖區(qū)10:六種關(guān)系運算符分別_______,!=(不等于)和==(等于)。運算符“==”和“!=”的運算優(yōu)先級__________另外四個關(guān)系運算符。答案>(大于).<(小于).>=(大于或等于).<=(小于或等于)。低于11:Java中提供了7種位運算符,位邏輯運算符是_______。算術(shù)移位運算符是_______。答案~(按位取反);&(與運算);丨(或運算);^(異或運算)。<<(左移);>>(算術(shù)右移)和>>>(邏輯右移)12:(a>b)?a:b;將返回_______。答案a和b中較大的那個數(shù)值13:inta,charb;將整形a將強制轉(zhuǎn)換為字符型b的語句為_______。答案b=(char)a14:a+b-c先執(zhí)行_______,再執(zhí)行_______。a=b=c先執(zhí)行_______再執(zhí)行_______。答案a+b。a+b-c。b=c。a=b15:Java標(biāo)準(zhǔn)輸出有_______方法和_______方法。要控制輸出數(shù)據(jù)的格式,可以使用_______方法和_______方法。答案Print。println。printf。format三.簡答題1:寫出下列程序的輸出結(jié)果,并予以說明。答案6異或32:寫出下列使用Math方法的程序的輸出結(jié)果。答案程序運行結(jié)果如下:半徑為3.0的圓面積是:28.XX8138直角三角形直角邊為3.0和4.0時的斜邊長為:5.0-8和-4的較大者是:一4-18的絕對值是:18不小于45.7的最小整數(shù)是:46.0不大于45.7的最大整數(shù)是:45.0sin25度的值是:0.XX069944。3:寫出下列程序的結(jié)果。答案程序運行結(jié)果如下:2005的二進制是:XX2005的八進制是:37252005的十六進制是:7d5iobj=123i=123iobjl==iobj2?trueiobj=2128num=41334:編寫程序?qū)⒄麛?shù)15左移2位,右移2位。答案第三章測試題一.單選題1:Java語言中,整形常數(shù)123占有的存儲字節(jié)數(shù)是_______。(A)1(B)2(C)4(D)8答案B2:下列if-else語句正確的是_______。if(1)語句1[else語句2]if(0)語句1if(5>3)語句1[else語句2]if5=3)語句1[else語句2]答案C3:用if-then-else語句,_______使用縮排。(A)不能 (B)建議 (C)必須 (D)有時必須答案B4:有循環(huán)結(jié)構(gòu)的程序中,應(yīng)該注意_______。循環(huán)體中的程序不應(yīng)太長避免條件表達式永遠為真值能夠使用while循環(huán),盡量使用while循環(huán)有時必須使用循環(huán)結(jié)構(gòu)答案B5:成了這個循環(huán)語句后,y的值將變成_______。(A)0 (B)250 (C)50 (D)51答案C6:成了這個循環(huán)語句后,x的值將變成_______。(A)0 (B)250 (C)50 (D)51答案A7:這個循環(huán)中,循環(huán)體內(nèi)的語句共執(zhí)行了_______次,循環(huán)判斷了_______次。(A)0 (B)250 (C)50 (D)51答案略8:這段代碼中,每一次循壞時,首先執(zhí)行_______語句。(A)intx=10(B)x>0(C)x--(D)System.out.println(i)答案B9:那么每一次循環(huán)中最后執(zhí)行的是_______語句。(A)intx=10(B)x>0(C)x--(D)System.out.println(i)答案C二.多選題10:switch語句的選擇變量可以_______類型的。(A)int (B)boolean (C)char. (D)float答案AC11:來區(qū)別每一個switch分支的保留字是_______。(A)choice (B)condition(C)case(D)break答案C12:果switch語句的選擇變量的值與每一個case語句中都不匹配,將使用_______選擇。(A)any (B)default (C)none (D)other答案B13:switch語句中是可選的語句是_______。(A)switch (B)default (C)other (D)case答案B三.填空題1:在Java中,用_______聲明一個新的對象。答案New2:在Java語言中使用的分支語句有_______語句和_______語句。答案if–else。switch3:Java語言提供_______循環(huán)語句._______循環(huán)語句和_______循環(huán)語句三種形式。答案while。do-while。for四.問答題1:閱讀以下程序,如果myScore=96,則程序?qū)⑤敵鍪裁?如果mySore=50,則程序?qū)⑤敵鍪裁矗磕阏J(rèn)為這符合邏輯嗎?如果不合邏輯該如何修改?答案如果myScope=96,程序?qū)⑤敵觯篊ongratulatetoyou!Youscoreisverygood!。如果myScope=50,程序?qū)⑤敵觯篩ouscoreisverygood!makegreatefforts!當(dāng)成績?yōu)?0分時,程序還說“youscoreisverygood!”,這說明這個程序不符合邏輯。應(yīng)該改為這是因為,if(myScore>=90)這個語句如果是真的話,應(yīng)該執(zhí)行兩個語句,而如果不使用“將它們圍起來,則第2個語句就不屬于if(myScore>=90)了。這樣,程序就不管在什么情況下都會執(zhí)行這一句。2:寫一個程序段,判斷成績(myScope),若小于60,則輸出bad;若大于60,則輸出middle;若大于80,就輸出good;若大于90時,輸出better。答案這個程序有多種寫法,下面列出了其中的一種:3:現(xiàn)有一個如下的數(shù)組:Stringweeks[]={“Monday”;“Tuesday”;“Wednesday”;“Thursday”;“Friday”;“Saturday”;“Sunday”;};請分別使用while循環(huán)和for循環(huán),寫一個程序?qū)⑺鼈兊闹荡蛴〉狡聊簧?。使用while語句:使用for語句:答案4:在下列程序片段中,你認(rèn)為變置condition是______型的。你認(rèn)為這個程序存在什么問題?答案b,能夠作為條件表達式的變量,只能是boolean型的。在這個程序中,循環(huán)體內(nèi)并未改變condition的值。如果condition是true的話,則這個循環(huán)將永遠不會結(jié)束;而如果condition是fasle的話,還好,只是不執(zhí)行這個循環(huán)體。5:判斷以下命題是否正確,如果不正確,請舉例說明。for循環(huán)都能夠改寫成while循環(huán) ()while循環(huán)都能夠改寫成for循環(huán) ()答案for循環(huán)都能夠改寫成while循環(huán) (對)while循環(huán)都能夠改寫成for循環(huán)(錯)例如,上一題中的while循環(huán)就無法改寫成為for循環(huán)。6:根據(jù)以下要求,使用switch語句編寫程序。某校使用“A”,“B”,“C”,“D”,“E”來為學(xué)生打成績,請編寫一個程序,當(dāng):成績?yōu)锳時,打印出“Excellent!”,成繢為B時,打印出“Good!”;成績?yōu)镃時,打印出“Average!”;成績?yōu)镈時,打印出“Pool!”;成績?yōu)镋時,打印出“Failure!”。假設(shè)本程序用來打印學(xué)生甲的成績情況,而學(xué)生甲的成績“B”存放在變量myScope。答案第四章測試題一.判斷題1:數(shù)組在定義時,不能分配空間。只有定義完后,可以給數(shù)組分配空間。答案是2:可以這樣定義數(shù)組:int[]num=newint[3]{l,2,3};答案否判斷下列定義二維數(shù)組的方法是否正確。3:int[][]num=newint[][]{l,2,3,4,5,5};答案否4:int[][]num=newint[][]{{1,2,3},{4,5,5}};答案是5:int[][]num=newint[2][]{{l,2,3},{4,5,5}};答案否6:int[][]num={{l,2,3},{4,5,6}};答案是7:對象數(shù)組在創(chuàng)建之初會自動初始化成null,由原始數(shù)據(jù)類型構(gòu)成的數(shù)組會自動初始化成零(針對數(shù)值類型),(Char)0(針對字符類型)或者false(針對布爾類型)。答案是8:int[]al={1,2,3,4,5};int[]a2;a2=al;此復(fù)制方法是否正確。答案是9:float[][]A=newfloat[26][26];A[0][]={0.731,0.012,0.001,0.230,???}可以定義一個float數(shù)組答案否10:數(shù)組中可以有不同的數(shù)據(jù)類型。答案否二.填空題1:復(fù)制數(shù)組使用的方法是_______。答案**()2:一維數(shù)組的定義格式為_______,二維數(shù)組的定義格式為_______。答案類型數(shù)組名[]或類型[]數(shù)組名。類型數(shù)組名[]或類型[][]數(shù)組名或類型[]數(shù)組名[];三.簡答題1:閱讀下列代碼,寫出其輸出。classTwoDAgain{publicstaticvoidmain(Stringargs[]){inttwoD[][]=newint[4][];twoD[0]=newint[l];twoD[l]=newint[2];twoD[2]=newint[3];twoD[3]=newint[4];inti,j,k=0;for(i=0ji<4;i++)for(j=0;j<i+l;j++){twoD[i][j]=k;k++;}for(i=0;i<4;i++){for(j=0;j<i+l;j++)System,out.print(twoD[i][j]+"")}System,out.Println();}}}答案該程序產(chǎn)生的輸出如下:01234567892:閱讀下列代碼寫出其輸出。publicclassArrays{publicstaticvoidmain(String[]args){int[]al={1,2,3,4,5}int[]a2;a2=al;for(inti=0;i<a2.length;i++)a2[i]++;for(inti=0;i<al.length;i++)prt("al["+i+"]="+al[i]);}staticvoidprt(Strings){System,out.println(s);}}答案運行結(jié)果是:al[0]=2al[l]=3al[2]=4al[3]=5al[4]=63:寫出下列程序的所有輸出,并說明數(shù)組a1和a2的關(guān)系。publicclassArrays{publicstaticvoidmain(String[]args){int[]al={1,2,3,4,5};for(inti=0;i<al.length;i++)System,out.println("al["+i+"]="+al);int[]a2;a2=al;for(inti=0;i<a2.length;i++)a2++;**.println("afterchangea2");for(inti=0;i<al.length;i++)**.println("al["+i+"]="+al);**.println("afterchangea2[0]");a2[0]=333;System,out.println("a2[0]="+a2[0]);**.println("al[0]="+al[0]);**("a2");for(inti=0;i<a2.length;i++)**.println("a2["+i+"]"+a2);}}答案運行結(jié)果是:al[0]=1al[l]=2al[2]=3al[3]=4al[4]=5afterchangea2 al[0]=2al[l]=3al[2]=4al[3]=5al[4]=6afterchangea2[0]a2[0]=333al[0]=333a2a2[0]=333a2[l]=3a2[2]=4a2[3]=5a2[4]=6數(shù)組al和a2始終在操作同一個對象。4:設(shè)在數(shù)組中存有10個整數(shù),現(xiàn)從鍵盤輸人一個數(shù),檢查此數(shù)是否在數(shù)組中,若在,則輸出它在數(shù)組中的位置,不在則輸出“Not?Found”。答案importJava.io.*;publicclassPickNum{publicstaticvoidmain(String[]args)throwsException{int[]a={2,43,5,7,4,3,28,9,11,30}BufferedReaderin=newBufferedReader(newInputStreamReade(system.in))Stringstr=in.readLine();intinputnum=Integer,parseInt(str);System,out.println("輸人的數(shù)字是:"+inputnum+",");inti;for(i=0,i<a.length;++i){if(inputnum==a[i]){System,out.println("它存在于數(shù)組的第"+i+"個位置。")break;}}if(i==a.length)System,out.Println("Notfound")}}5:寫一個方法,求一組數(shù)的最大值.最小值和平均值。答案classReturnArray{publicstaticvoidmain(Stringargs[]){doublea[]={1.1,3.4,-9.8,10};doubleb[]=max_min_ave(a);for(inti=0;i<b.length;i++)**.println("b["+i+"]="+b[i])}staticdouble[]max_min_ave(doublea[]){doubleres[]=newdouble[3];doublemax=a[0],min=a[0],sum=a[0]for(inti=l;i<a.length;i++){if(max<a[i])max=a[i];if(min>a[i])min=a[i];sum+=a[i];}res[0]=max;res[l]=min;res[2]=sum/a.length;returnres;}}第五章測試題一.判斷題1:類的對象是在程序運行中創(chuàng)建生成的,其所占的空間在程序運行中動態(tài)分配。答案是2:Java的垃圾收集程序會自動收回不用對象所占的空間。答案是3:類對象沒有生命周期。答案否4:new運算符不用指定的類在內(nèi)存中分配空間,并將存儲空間的引用存人語句中的對象變量。答案否5:new運算符不可以與類聲明一起使用來創(chuàng)建類的對象。答案否6:某些修飾符只能應(yīng)用于類的成員,某些修飾符既可應(yīng)用于類也可應(yīng)用于類的成員。答案是7:靜態(tài)方法也能訪問屬于某個對象的成員變量,而且能處理屬于整個類的成員變量。答案否8:靜態(tài)成員屬于整個類,所以它被所有該類對象共享。在不同的類對象中訪問靜態(tài)成員,訪問的是同一個。答案是9:final類不能被繼承,即final類無子類。final方法可以被覆蓋。答案否10:abstract修飾符可應(yīng)用于類和方法,稱為抽象類和抽象方法。答案是11:子類成員方法對父類同名方法的覆蓋將清除父類方法占用的內(nèi)存空間,從而使得父類的方法在子類對象中不復(fù)存在。答案是12:在創(chuàng)建派生類的對象時,使用派生類的構(gòu)造方法對其初始化,要對自身的成員變量賦初值,但不一定要對父類的的成員變量賦初值。答案否13:抽象方法必須定義在抽象類中。抽象類是一種未實現(xiàn)的類,抽象類不能用new實例化一個對象。答案是14:派生類實現(xiàn)哪個或哪些接口可以用implements說明,也可以用extends說明。答案否15:關(guān)鍵字package后是不同層次的包名,在包名1下允許有次一級的子包——包名2,包名2下可以有更次一級的子包——包名3等等。答案是二.填空題1:類是組成Java程序的基本元素,它封裝了一系列的_______和_______,是一類對象的原型。創(chuàng)建一個新的類,就是創(chuàng)建一個新的_______。實例化一個類,就得到一個_______。答案變量。方法。數(shù)據(jù)類型。對象2:創(chuàng)建類的對象需用_______運算符,一般形式為_______。答案new。對象名=new類名()3:訪問對象成員的一般形式為_______和_______。答案對象名.數(shù)據(jù)成員。名對象名.成員方法名()4:一般將修飾符分為_______和_______兩類。public,protected,private等是_______,static,final,native,volatile,abstract等是___________。答案訪問控制符。非訪問控制符。訪問控制符。非訪問控制符5:類的數(shù)據(jù)成員也可以是引用類型的數(shù)據(jù),如_______字符串和_______等。答案數(shù)組。類6:類繼承也稱為類派生,是指一個類可以繼承其他類的_______(非私有/私有)成員,實現(xiàn)代碼復(fù)用。被繼承的類稱為_______或_______,父類包括所有直接或間接被繼承的類;繼承父類或超類后產(chǎn)生的類稱為_______或子_______。答案非私有。父類。超類。派生類。類7:Java語言以_______類作為所有類的父類。答案Object8:在Java語言中,只允許_______(單繼承/多繼承)。類繼承_______(不改變/改變)成員的訪問權(quán)限。答案單繼承。不改變9:Java中的繼承是通過_______關(guān)鍵字來實現(xiàn)的。若無_______子句,則該類_______的子類。答案extends。extends。Java.lang.Object10:在類的繼承中,若子類(派生類)新增的成員名稱與父類(超類)成員相同,則稱為_______,在子類中定義與父類同名成員的目的是_______。答案成員夜蓋(overriding)。修改父類的屬性和行為11:在繼承接口的類中,通過定義接口中_______來實現(xiàn)接口功能。答案抽象方法的方法體12:在Java語言中,用關(guān)鍵字_______來定義接口。答案interface13:接口體中定義的變置均為_______,_______和_______。答案終極(final)的。靜態(tài)(static)的。公共(public)的14:包由包語句_______創(chuàng)建。答案package15:在Java程序中,若要用到某些包中的類或接口,一種方法是在程序的開始部分寫出相應(yīng)的_______語句,指出要引人哪些包的哪些類。另一種方法不用引人語句,直接在要引人的類和接口前給出其所在_______。答案引人(import)。包名三.簡答題1:構(gòu)造方法是一種特殊的成員方法,它的特殊性反映哪些方面?答案(1)構(gòu)造方法名與類名相同。(2)構(gòu)造方法不返回任何值,也沒有返回類型。(3)每一個類可以有零個或多個構(gòu)造方法。(4)構(gòu)造方法在創(chuàng)建對象時自動執(zhí)行,一般不能顯式地直接調(diào)用。2:定義一個名為Rectangle表示長方形的類,它包含double類型的長length和寬width兩個數(shù)據(jù)成員和設(shè)置長方形長寬值的方法setDim().計算長方形面積的方法area()。答案classRectangle{doublelength;doublewidth;doublearea(){returnlength*width;}voidsetDim(doublew,double1){width=w;length=1;}}3:分別計算長.寬分別為20,10和6,3的兩個長方形面積。用構(gòu)造方法來初始化長方形的大小。答案classRectConstructor{doublelength;doublewidth;doublearea(){returnlength*width;}RectConstructor(double1;doublew){length=1;width=w;}}classRectDemo3{publicstaticvoidmain(Stringargs[]){RectConstructorrect1=newRectConstructor(20,10);RectConstructorrect2=newRectConstructor(6,3);doublear;ar=rect1.area();**.println("第一個長方形的面積是:"+ar);ar=rect2.area();**("第二個長方形的面積是t"+ar);}}4:內(nèi)部類具有什么特性?答案(1)內(nèi)部類可以被定義在方法中。它可以訪問嵌套類的方法的final變量。(2)內(nèi)部類可以使用所嵌套類的類變量和實例變量以及所嵌套的塊中的本地變量。(3)內(nèi)部類可以被定義為abstract抽象類。(4)內(nèi)部類可以被聲明為private或protected,以便防護它們不受來自外部類的訪問。訪問保護不阻止內(nèi)部類使用其他類的任何成員。(5)—個內(nèi)部類可以作為一個接口,由另一個內(nèi)部類實現(xiàn)。(6)聲明為static的內(nèi)部類成為頂層類。這些內(nèi)部類失去了在本地范圍和其他內(nèi)部類中使用數(shù)據(jù)或變量的能力。(7)內(nèi)部類不能聲明任何static成員,只有頂層類可以聲明static成員。因此,一個箝求static成員的內(nèi)部類必須使用來自頂層類的成員。5:Java都有哪些形式的包?各有什么作用或內(nèi)容?答案(l)Jave,lang:Jave語言的核心包,有Java程序所需要的最基本的類和接口,包括Ob?ject類.基本數(shù)據(jù)類型包裝類.數(shù)學(xué)類.異常處理類.線程類.字符串處理類.系統(tǒng)與運行類和類操作類等。這個包由編譯器自動引人。(2)Java.applet:用來實現(xiàn)運行于Internet瀏覽器中的JavaApplet的工具類庫,它包含少量的幾個接口和一個非常有用的類Java.applet.Applet。(3)Java.awt:是Java抽象窗口工具箱包,包含許多字體和顏色設(shè)置.幾何繪圖.圖像顯示.圖形用戶接口操作的類和接口。(4)Java.io:是Java語言的標(biāo)準(zhǔn)輸入/輸出類庫,包含實現(xiàn)Java程序與操作系統(tǒng).外部設(shè)備以及其他Java程序做數(shù)據(jù)交換所使用的類,例如基本輸人/輸出流.文件輸人/輸出流.過濾輸人/輸出流.管道輸人/輸出流.隨機輸人/輸出流等;還包含了目錄和文件管理類等。(5)Java,net:是Java網(wǎng)絡(luò)包,實現(xiàn)網(wǎng)絡(luò)功能。(6)Java. util:包含了Java語言中的一些低級的實用工具,如處理時間的Date類,處理變長數(shù)組的Vector類,實現(xiàn)棧和雜湊表的Stack類和HashTable類等。第六章測試題一.判斷題1:equals()和equalsIgnoreCase()與運算符“==”實現(xiàn)的比較是相同的。答案否2:System.out.println(s==sl);輸出為false,System,out.println(“abc”==”abc”);輸出為true。答案是3:方法compareTo(StringanotherString)的功能是比較兩個字符串的大小。答案是4:方法replace(charoldChar,charnewChar)的功能是將字符串中newChar字符用oldChar字符替換。答案否5:方法Stringtrim()的功能是截去字符串后端的空白字符答案答案否6:方法concatO的功能是將str連接到調(diào)用串對象的后面,即進行字符串的連接操作。答案是7:類StringBuffei?的對象是一種可以改變(如增長.修改)的字符串對象,使用起來比String類更加方便。答案是二.填空題1:Java語言中的包Java.lang中封裝了final類_______和_______,其中類_______對象是字符串常量,建立后不能改變。而類_______對象類似于一個字符緩沖區(qū),建立后可以修改。答案String。StringBuffer。String。StringBuffer2:定義一個字符串常量_______。定義一個空字符串_______。答案Strings="HelloWorld.。Strings=newString()3:由于在Internet上通常使用的字符都為8位的ASCII碼,Java提供了從字節(jié)數(shù)組來初始化字符串的方法,并且用_______來指定每個字符的髙位字節(jié),對ASCII碼來說,hiByte應(yīng)為_______,對于其他非拉丁字符集,hiByte的值應(yīng)該非_______。答案hiByte。0。04:方法_______和_______用來比較兩個字符串的值是否相等,不同的是_______忽略字母的大小寫。答案equals()。equalsIgnoreCase()。equalsIgnoreCase()5:運算符“==”比較兩個字符串對象是否_______,而equals()和equalsIgnoreCase()則比較兩個字符串_______。答案引用同一個實例對象。中對應(yīng)的每個字符是否相同6:方法_______和_______用來比較當(dāng)前字符串的起始字符(或子字符串)prefix和終止字符(或子字符串)suffix是否和調(diào)用的字符(或字符串)相同。答案startWith()。endWith()7:lastlndexOf(Stringstr)和indexOf方法相比,不同之處是_______。答案從串對象的右端開始查找8:輸出結(jié)果為_______。答案**9:Strings=Integer.toString(123,8);System,out.println(s);輸出結(jié)果為_______。答案17310:StringBuffer字符串和String字符串的區(qū)別是_______。答案略11:在類StringBuffer對象中長度length和是類StringBuffer對象中_______,容量capacity是_______。答案包含字符的數(shù)目。緩沖區(qū)空間的大小三.簡答題1:voidensureCapacity(intminimumCapacity)答案本方法的功能是設(shè)定字符串緩沖區(qū)的大小。保證緩沖區(qū)的容量至少為指定的值mini-mumCapacity。若當(dāng)前緩沖區(qū)容量小于參數(shù)值,則分配新的較大的緩沖區(qū)。新容量取以下兩者中的大者:參數(shù)minimumCapacity的值;老容量的兩倍加2。2:voidsetLength(intnewLength)答案本方法的功能是指明字符串的長度,這時字符串緩沖區(qū)中指定長度以后的字符值均為零。3:StringBufferappend(Objectobj)答案方法append()用于在串緩沖區(qū)的字符串末尾添加各種類型的數(shù)據(jù)4:StringBufferinsert()答案方法StringBufferinsert()用于在串緩沖區(qū)的指定位置offset處插入各種類型的數(shù)據(jù)。5:StringBuffer.reverse()答案方法reverse()用于對StringBuffer類字符串對象進行顛倒操作。設(shè)原字符串的長度為n,新字符串中k位置的字符在原字符串中的位置為n-k-1。四.問答題1:寫程序?qū)⒆址產(chǎn)bcde,fgh,ijklmnop連接起來。答案classStringBufferAppend{publicstaticvoidmain(Stringargs[]){StringBuffersb=newStringBuffer("abcde");**("fgh");sb.=append("ijklmnop")**(sb)**("sb.capacity="+sb.Capacity());**("sb.length="+sb.length());**());}}2:寫一個方法對字符串?dāng)?shù)組按照順序(從小到大)和逆序(從大到小)的方式排序。答案publicString[]sort(String[]str,intflag){if(str==null||tr.length==0)thrownewIllegalArgumentException();Stringtemp=str[0];//順序排列,即從小到大if(flag==0){for(inti=0;i<str.length-1;i++){for(intj=i+1;j<str.length;j++){if(str[i].compareTo(str[j])>0){temp=str[i];str[i]=str[i];str[j]=temp;}}}}elseif(flag==l)//倒序排列for(inti=0;i<str.length-1;i++){if(str[i].compareTo(str[i])<0){temp=str[i];str[i]=str[j];str[i]=temp;}}}}第七章測試題一.名詞解釋1:輸人/輸出流。答案輸人/輸出時,數(shù)據(jù)在通信通道中流動。所謂“數(shù)流(stream)”指的是所有數(shù)據(jù)通信通道之中,數(shù)據(jù)的起點和終點。信息的通道就是一個數(shù)據(jù)流。只要是數(shù)據(jù)從一個地方“流”到另外一個地方,這種數(shù)據(jù)流動的通道都可以稱為數(shù)據(jù)流。2:Reader。答案Reader中包含一套字符輸人流裔要的方法,可以完成最基本的從輸人流讀人數(shù)據(jù)的功能。當(dāng)Java程序需要外設(shè)的數(shù)據(jù)時,可根據(jù)數(shù)據(jù)的不同形式,創(chuàng)建一個適當(dāng)?shù)腞eader子類類型的對象來完成與該外設(shè)的連接,然后再調(diào)用執(zhí)行這個流類對象的特定輸人方法,如readO,來實現(xiàn)對相應(yīng)外設(shè)的輸人操作。3:標(biāo)準(zhǔn)輸出。答案System類的類變量out表示標(biāo)準(zhǔn)輸出流,其定義為publicstaticfinalPrintStreamout標(biāo)準(zhǔn)輸出流也已打開,作好接收數(shù)據(jù)的準(zhǔn)備。一般這個流對應(yīng)顯示器輸出。4:緩沖輸出流Bu£feredOutputStream類。答案緩沖輸出流BufferedOutputStream類提供和FileOutputStream類同樣的寫操作方法,但所有輸出全部寫人緩沖區(qū)中。當(dāng)寫滿緩沖區(qū)或關(guān)閉輸出流時,它再一次性輸出到流,或者用flush()方法主動將緩沖區(qū)輸出到流。5:PrintStream類。答案過濾流類的子類PrintStream類提供了將Java的任何類型轉(zhuǎn)換為字符串類型輸出的能力。輸出時,可應(yīng)用經(jīng)常使用的方法print()和println()。二.填空題1:輸人/輸出類在Java.io包中提供了60多個類(流)。從功能上分為兩大類:_______。從流結(jié)構(gòu)上可分為_______。答案輸入流和輸出流。字節(jié)流和字符流2:字節(jié)流的輸入流和輸出流基礎(chǔ)是_______和_______這兩個抽象類,字節(jié)流的輸入輸出操作由這兩個類的子類實現(xiàn)。字符流輸人輸出的基礎(chǔ)是抽象類_______和_______。答案InputStream。OutputStream。Readr。Writer3:過濾流的主要特點是_______。答案在輸人輸出數(shù)據(jù)的同時能對所傳輸?shù)臄?shù)據(jù)做指定類型或格式的轉(zhuǎn)換,即可實現(xiàn)對二進制字節(jié)數(shù)據(jù)的理解和編碼轉(zhuǎn)換4:標(biāo)準(zhǔn)輸入設(shè)備是_______,標(biāo)準(zhǔn)輸出設(shè)備是_______,Java語言的系統(tǒng)類System提供訪問標(biāo)準(zhǔn)輸入輸出設(shè)備的功能,它有三個類變量_______分別表示標(biāo)準(zhǔn)輸人.標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出流。答案鍵盤。終端顯示器。in.out和err5:FilelnputStream類構(gòu)造方法有兩種,一種是_______建立流對象,例如_______;一種是_______建立流對象,例如_______。答案文件名。name=FilelnputStreamfis=newFilelnputStream("c:/config.sys")。文件對象file。FilemyFile=newFile("c:/config.sys)6:可用_______和_______兩種方法關(guān)閉它。答案顯式關(guān)閉。隱式關(guān)閉7:由于Java采用16位的_______字符,因而它是基于_______的輸入/輸出操作。答案Unicode。字符8:readLine()方法________,newLine()方法_______。答案從輸人流中讀取一行字符,行結(jié)束標(biāo)志為回車符和換行符。向字符輸出流中寫人一個行結(jié)束標(biāo)記9:Java提供的_______可進行隨機形式的輸入輸出。答案RandomAccessFile類10:目錄操作的主要方法有:根據(jù)抽象路徑名創(chuàng)建目錄_______,返回抽象路徑名表示路徑中的文件名和目錄名_______。答案publicbooleanmkdir()。publicString[]list()三.簡答題1:輸入輸出流操作的一般步驟是什么?有什么需要注意的?答案(1)使用引人語句引入Java.io包:importJava.io.*;(2)根據(jù)不同數(shù)據(jù)源和輸人輸出任務(wù),建立字節(jié)流或字符流對象。(3)若需要對字節(jié)或字符流信息組織加工為數(shù)據(jù),在已建字節(jié)流或字符流對象上構(gòu)建數(shù)據(jù)流對象。(4)用輸人輸出流對象類的成員方法進行讀寫操作,需要時,設(shè)置讀寫位置指針。(5)關(guān)閉流對象。其中步驟(2)?(5)要考慮異常處理。2:使用數(shù)據(jù)文件流的一般步驟是什么?答案(1)建立字節(jié)文件流對象;(2)基于字節(jié)文件流對象建立數(shù)據(jù)文件流對象;(3)用流對象的方法對基本類型的數(shù)據(jù)進行輸人/輸出。3:DatalnputStream和DataOutputStream類和FilelnputStream和FileOutputStream的區(qū)別是什么?答案字節(jié)文件流FilelnputStream和FileOutputStream只能提供純字節(jié)或字節(jié)數(shù)組的輸入/輸出,如果要進行基本數(shù)據(jù)類型如整數(shù)和浮點數(shù)的輸人/輸出。則要用到過濾流類的子類二進制數(shù)據(jù)文件流DatalnputStream和DataOutputStream類。這兩個類的對象必須和一個輸入類或輸出類聯(lián)系起來,而不能直接用文件名或文件對象建立。4:用哪些方法可以獲得文件名,對文件重命名,以及進行文件刪除操作?答案(1)獲得文件名publicString.getName()得到一個文件名。publicString.getParent()得到一個抽象路徑的父路徑名。publicString.getPath()得到一個文件的路徑名。publicString.getAbsolutePath()得到一個抽象路徑的絕對路徑名。(2)文件重命名publicbooleanrenameTo(Filedest)將抽象路徑文件名重命名為給定的新文件名。(3)文件刪除publicbooleandelete()刪除抽象路徑表示的文件或目錄。四.問答題1:在C盤根目錄下建立文件FIB.DAT,存儲Fibonacci數(shù)列的前20個數(shù)。Fibonacci數(shù)列的前兩個數(shù)是1,從第三個數(shù)開始,是其前兩個數(shù)之和。即1,1,2,3,5,8,13,21,…。答案importJava.io.*;classFibOut{publicstaticvoidmain(Stringargs[]){try{//創(chuàng)建字節(jié)文件輸出流OutputStreamfos=newFileOutputStream("ric:/fib.dat");DataOutputStreamdos=newDataOutputStream(fos);intcount=0,i=l,j=1;for(;count<20;count++){**(i)intk=i+ji=j;j=k;}**()//關(guān)閉文件輸出流}catch(Exceptione){System,out.printlnC"Exception:"+e);}System,out.println("文件創(chuàng)建成功!");}}2:用FileWriter來寫人文件。答案importJava.io.*;classFileWriteTest{publicstaticvoidmain(String[]args){FileWriteTestt=newFileWriteTest();**();}voidWriteMyFile(){

try{FileWriterfw=newFileWriter("mydata.txt");PrintWriterout=newPrintWriter(fw);out.print("hi,thiswillbewirteintothefile!");**();**();}catch(IOExceptione){System,out.Println("'Uhoh,gotanlOExceptionerror!");printStackTrace()}}}第八章測試題一.名詞解釋1:JavaApplet答案JavaApplet是一種特殊的Java應(yīng)用程序。英文后綴-let是小的意思,JavaApplet即Java小應(yīng)用程序,常簡稱為Java小程序或Java小應(yīng)用程序2:HTML語言答案Java小程序必須嵌人在HTML語言中由瀏覽器運行。HTML語言是“HyperTextMarkupLanguage”的簡寫,稱為“超文本標(biāo)記語言”。它是一種排版語言,在給出具體信息的同時,也用各種標(biāo)記(tag)來指出這些信息的顯示格式。WWW瀏覽器可以理解這些標(biāo)記,并按照標(biāo)記的要求在瀏覽器的顯示頁面中把HTML文件中的信息顯示出來。3:AWT答案AWT是AbstractWindowToolkit的縮寫,中文意義是抽象窗口工具包。所謂抽象,是指Java作為一種跨平臺的語言,要求Java程序應(yīng)能在不同的平臺系統(tǒng)上運行。為了達到這個目的,集中了很多繪圖.圖形圖像.顏色.字體.圖形界面組件等類的AWT類庫中的各種操作被定義成在一個并不存在的“抽象窗口”中運行?!俺橄蟠翱凇笔沟瞄_發(fā)人員所設(shè)計的圖形界面程序能夠獨立于具體的界面實現(xiàn),可以適用于所有的平臺系統(tǒng)。4:Applet間的通信答案嵌入在同一HTML文件中的Applet程序(同頁)可以通過Java,applet包中提供的接口.類方法進行通信。有用的接口為Applet環(huán)境上下文接口AppletContext,在該接口中定義了如下的方法:publicAppletgetApplet(Stringname)查找和返回由Applet上下文指明的HTML文擋中具有指定name的的Applet,name用HTML標(biāo)記中name屬性設(shè)置,是一個Applet字節(jié)碼文件的名字。5:URL統(tǒng)一資源定位器答案URL(Uni£ormResourceLocator)是統(tǒng)一資源定位器的簡稱,它表示Internet上某一資源的地址。URL包括兩方面的內(nèi)容:協(xié)議名和資源名,中間用冒號隔開。二.填空題1:Java應(yīng)用程序和JavaApplet方法的區(qū)別是_______。答案JavaApplet中沒有main()方法2:所有的JavaApplet都必須聲明為_______類的子類或_______類的子類。通過這個Applet類或JApplet類的子類,才能完成Applet與_______的配合。答案略3:Applet和JApplet類為_______類,編寫的Applet的主類也必須聲明為_______。因此文件名必須與類名相同(包括大小寫),源文件名必須為類名加_______。答案Public。public。Java4:在JavaApplet中有五種相對重要的方法_______,_______,_______,_______,_______。答案初始化init()。開始執(zhí)行start()。停止執(zhí)行stop()。退出destroy()。繪畫paint()5:Applet可以通過_______來得到外部參數(shù)。這是通過_______參數(shù)標(biāo)記來實現(xiàn)的。答案HTML文件。HTML文檔中PARAM6:要進行AWT繪制工作,要應(yīng)用Java.awt.Component類中的幾個方法,這些方法分別是_______._______._______。答案voidpaint(Graphicsg)方法。voidupdate(Graphicsg)方法。voidrepaint()方法7:在Java語言中,應(yīng)用字體用_______類實現(xiàn),一個_______類的對象表示了一種字體顯示效果,包括字體.字形和字號等內(nèi)容。Font類的構(gòu)造方法為_______。答案Font。Font。Font(Stringname,intstyle,intsize)8:若希望程序的界面五彩斑斕,可應(yīng)用Java.awt包中的類_______。它提供了_______種顏色常量。Java采用_______位顏色標(biāo)準(zhǔn),每種顏色由_______三種顏色的不同比例值組合而成,取值范圍為_______。答案Color。13。24。紅(R).綠(G).藍(B)。0~255三.簡答題1:簡述Applet的工作原理。答案含有Applet的網(wǎng)頁的HTML文件代碼中部帶有<applet>和</applet>&樣一對標(biāo)記,當(dāng)支持Java的網(wǎng)絡(luò)瀏覽器遇到這對標(biāo)記時,就將下載相應(yīng)的小應(yīng)用程序代碼并在本地計算機上執(zhí)行該Applet。JavaApplet是用Java語言編寫的一些小應(yīng)用程序,這些程序是直接嵌人到頁面中,由支持Java的瀏覽器(IE或Nescape)解釋執(zhí)行能夠產(chǎn)生特殊效果的程序。它可以大大提髙Web頁面的交互能力和動態(tài)執(zhí)行能力。包含Applet的網(wǎng)頁被稱為Java-powered頁,可以稱其為Java支持的網(wǎng)頁。當(dāng)用戶訪問這樣的網(wǎng)頁時,Applet被下載到用戶的計算機上執(zhí)行,但前提是用戶使用的是支持Java的網(wǎng)絡(luò)瀏覽器。由于Applet是在用戶的計算機上執(zhí)行的,所以它的執(zhí)行速度不受網(wǎng)絡(luò)帶寬或者Modern存取速度的限制,用戶可以更好地欣賞網(wǎng)頁上Applet產(chǎn)生的多媒體效果。Applet小應(yīng)用程序的實現(xiàn)主要依靠Java,applet包中的Applet類。與一般的應(yīng)用程序不同,Applet應(yīng)用程序必須嵌人在HTML頁面中,才能得到解釋執(zhí)行;同時Applet可以從Web頁面中獲得參數(shù),并和Web頁面進行交互。含有Applet的網(wǎng)頁的HTML文件代碼中必須帶有<叩口1過>和</3!^1過>這樣一對標(biāo)記,當(dāng)支持Java的網(wǎng)絡(luò)瀏覽器遇到這對標(biāo)記時,就將下載相應(yīng)的小程序代碼并在本地計算機上執(zhí)行該Applet小程序。Applet是一種Java的小程序,它通過使用該Applet的HTML文件,由支持Java的網(wǎng)頁瀏覽器下載運行。也可以通過Java開發(fā)工具的appletviewer來運行。Applet程序離不開使用它的HTML文件。這個HTML文件中關(guān)于Applet的信息至少應(yīng)包含以下三點:(1)字節(jié)碼文件名(編譯后的Java文件,以.class為后綴);(2)字節(jié)碼文件的地址;(3)在網(wǎng)頁上顯示Applet的方式。一個HTML文件增加Applet有關(guān)的內(nèi)容只是使網(wǎng)頁更加富有生氣,如添加聲音.動畫等這些吸引人的特征,它并不會改變HTML文件中與Applet無關(guān)的元素。2:Applet的一般結(jié)構(gòu)框架形式是什么?答案importJava.awt.*;importJava.applet.*;publicclass小程序類名extendsApplet{publicvoidinit(){//初始化.設(shè)S字體.裝載圖片等}publicvoidstart(){//啟動或恢S執(zhí)行}publicvoidstop(){//執(zhí)行被掛起}publicvoiddestroy(){//執(zhí)行關(guān)閉活動}publicvoidpaint(Graphicsg){//進行繪圖操作等}}3:Applet的執(zhí)行有幾種方式?請予以簡要介紹。答案有三種方式(1)用AppletViewer執(zhí)行。Java.SDK開發(fā)環(huán)境中提供的小程序觀察器AppletViewer.exe是一個瀏覽Applet的簡易工具,它僅僅使用HTML文件中需要運行Applet的各種信息,而其他內(nèi)容將不會被顯示出來。AppletViewer通過命令行方式運行,它彈出一個類似瀏覽器的畫面,包括一個Applet菜單.一個圖形顯示區(qū)域和一個位于顯示區(qū)域下方的狀態(tài)行。AppletViewer運行時要指定一個嵌入Applet字節(jié)碼的HTML文件,使得給定的Applet可以在顯示區(qū)域中運行。(2)在瀏覽器中執(zhí)行。支持Java Applet的瀏覽器運行嵌入Applet單元的HTML文檔即可運行其中的Applet程序。但常見的瀏覽器只能支持JDK1.1版的JavaApplet。若箝要使用新版本的JavaSDK來開發(fā)瀏覽器可運行JavaApplet,可安裝JavaSDK相應(yīng)版本的插件Plugin,并可用HtmlConverter.exe程序來變換原HTML文檔為新的HTML文檔格式。(3)在網(wǎng)頁編輯器.FrontPage2000中執(zhí)行。MicroSoftFrontPage2000是一種常用的網(wǎng)頁設(shè)計工具,它集成在MicrosoftOffices2000中。使用FrOntPage2000可以用所見即所得的方式進行網(wǎng)頁設(shè)計,且不箝要網(wǎng)頁設(shè)計者寫任何HTML代碼。4:在Applet的重要執(zhí)行方法中,它們分別做哪些工作?答案(1)publicvoidinit()初始化。在整個Applet生命周期中,初始化只進行一次。當(dāng)?shù)谝淮螢g覽含有Applet的Web頁時,瀏覽器將進行下面的工作:1)下載該Applet。2)創(chuàng)建一個該Applet主類的實例對象。3)調(diào)用init()對Applet自身進行初始化。在init()方法中可設(shè)置Applet初始狀態(tài).載人圖形或字體.獲取HTML中Applet標(biāo)記單元中<PARAM>設(shè)定的參數(shù)等。(2)public voidstart()啟動。在整個Applet生命周期中,啟動可發(fā)生多次。在下列情況下,瀏覽器會調(diào)用start()方法:1)Applet第一次載入時。2)離開該Web頁后,再次進入時(用back,forward)。3)Reload該頁面時。4)在瀏覽含有Applet的Web頁時用瀏覽器右上角縮放按鈕縮放瀏覽窗口大小時。在start()方法中可啟動一線程來控制Applet,給引人類對象發(fā)送消息,或以某種方式通知Applet開始運行。(3)public voidstop()停止執(zhí)行。在整個Applet生命周期中,停止執(zhí)行可發(fā)生多次。在下列情況下,瀏覽器會調(diào)用stop()方法:1)離開Applet所在Web頁時(用back,forward)。2)Reload該頁面時。3)在瀏覽含有Applet的Web頁時用瀏覽器右上角縮放按鈕縮放瀏覽窗口大小時。4)close該Web頁(徹底結(jié)束對該頁面的訪問),exit結(jié)束瀏覽器運行時(從含有該Applet的Web頁退出時)。stop()掛起Applet,可釋放系統(tǒng)處理資源。不然當(dāng)瀏覽者離開一個頁面時,Applet還將繼續(xù)運行。(4)public voidpaint(Graphicsg)繪制。發(fā)生下列情況時,瀏覽器會調(diào)用paint()方法,而且可根據(jù)需要產(chǎn)生多次調(diào)用。1)Web頁中含有Applet的部分被卷人窗口時。2)Applet顯示區(qū)域在視線內(nèi)時調(diào)整瀏覽窗口大小.縮放瀏覽窗口.移動窗口或Reload等需要重繪窗口時都會調(diào)用paint()方法。與前幾個方法不同的是,paint()中帶有一個參數(shù)Graphicsg,它表明paint()需要引用一個Graphics類的實例對象。在Applet中不用編程者操心,瀏覽器會自動創(chuàng)建Graphics對象并將其傳送給paint()方法,但編程者應(yīng)在Applet中引人Graphics類所在的包或該類:importJavaawt.Graphics;(5)publicvoiddestroy()退出(撤銷)。在整個Applet生命周期中,退出只發(fā)生一次。在徹底結(jié)束對該Web頁的訪問和結(jié)束瀏覽器運行時(closeexit)調(diào)用一次。Destroy()是Java.applet.Applet類中定義的方法,只能用于Applet。可在該方法中編寫釋放系統(tǒng)資源的代碼。但除非用了特殊的資源如創(chuàng)建的線程,否則不需重寫destroy()方法,因為Java運行系統(tǒng)本身會自動進行“垃圾”處理和內(nèi)存管理。四.問答題1:以HelloWorld例子來說明Applet程序的開發(fā)過程。答案(1)編輯Applet的Java源文件。創(chuàng)建文件夾C:\ghq,在該文件夾下建立HelloWorld.Java。文件的源代碼如下:importJava.awt.*;importJava.applet.*;publicclassHelloWorldextendsApplet//繼承Appelet類,這是Appelet.Java程序的特點{publicvoidpaint(Graphicsg){g.drawString("HelloWorld!",5,35);}}保存上述程序在C:\ghq\HelloWorld.Java文件里。(2)編譯Applet。編譯HelloWorld.Java源文件可使用如下JDK命令:C:\ghq\>JavacHelloWorld.Java<Enter〉成功地編譯JavaApplet之后生成相應(yīng)的字節(jié)碼文件HelloWorld.class的文件。用資源管理器或DIR命令列出目錄列表,將會發(fā)現(xiàn)目錄C:\ghq中多了一個名為HelloWorld.clas的文件。(3)創(chuàng)建HTML文件。在運行創(chuàng)建的HelloWorld.class之前,還需創(chuàng)建一個HTML文件,AppletViewer或瀏覽器將通過該文件訪問創(chuàng)建的Applet。為運行HelloWorld.class,需要創(chuàng)建包含如下HTML語句的名為HelloWorld.html的文件。<HTML><TITLE>HelloWorld!Applet</TITLE><APPLET>CODE="JavaWorld.class"WIDTH=200HEIGHT=100></APPLET></HTML><APPLET>語句指明該Applet字節(jié)碼類文件名和以像素為單位的窗口的尺寸。雖然這里HTML文件使用的文件名為HelloWorld.HTML,它對應(yīng)于HelloWorld.Java的名字,但這種對應(yīng)關(guān)系不是必須的,可以用其他的任何名字(比如說Ghq.HTML)命名該HTML文件。但是使文件名保持一種對應(yīng)關(guān)系可給文件的管理帶來方便。(4)執(zhí)行HelloWorld.html。如果appletviewer運行HelloWorld.html,嚮輸人如下的命令行:C:\ghq\>appletviewerJavaWorld.Html<ENTER>可以看出,該命令啟動了AppletViewer并指明了HTML文件,該HTML文件中包含對應(yīng)于HelloWorld的<PARAM>語句。如果用瀏覽器運行HelloWorld.Applet,需在瀏覽器的地址欄中輸人HTML文件URL地址。至此,一個Applet程序的開發(fā)運行整個過程結(jié)束了包括Java源文件.編譯的class文件.html文件以及用AppletViewer或用瀏覽器運行第九章測試題一.判斷題1:AWT是Java語言進行GUI程序設(shè)計的基礎(chǔ)。答案是2:Swing組件是Java語言提供的第一代GUI設(shè)計工具包,它以AWT為基礎(chǔ)。答案否3:與AWT組件相比,Swing組件的名前少一個“J”字母。答案否4:AWT組件在Java,awt包中,而Swing組件在Javax.swing包中。答案是5:—個Java的圖形用戶界面的全部元素是組件。答案否6:抽象類Container是所有容器的父類,類Container也是Java語言的組件類Compoent的父類。答案否7:使用不同的布局管理器,組件在容器上的位置和大小都是很不一樣的。答案是8:在容器中并不是所有組件的布局(位置和大?。┯刹季止芾砥鱽砜刂啤4鸢阜?:在向GridLaymit添加組件時,組件加人容器要按序進行,每個網(wǎng)格中都必須加入1件。答案是10:框架是Frame類的對象,是swingGUI應(yīng)用程序的主窗口。答案否11:JButton組件與AWT的Button組件相比,增加了顯示文本中可用HTML標(biāo)記,可?圖標(biāo)等功能。答案是12:在GUI程序中,通常使用鼠標(biāo)來進行人機交互操作。答案是13:處理鍵盤事件的程序要實現(xiàn)在Java. awt.event包中定義的接口MouseListener。答案否二.名詞解釋1:布局管理器(LayoutManager)。答案為了使得圖形用戶界面具有良好的平臺無關(guān)性,在Java語言中提供了布局管理器這個工具來管理組件在容器中的布局,而不使用直接設(shè)置組件位置和大小的方式。容器中的組件定位由布局管理器決定。每個容器都有一個缺省的布局管理器,當(dāng)容器需要對某個組件進行定位或判斷其大小尺寸時,就會調(diào)用其相應(yīng)的布局管理器。但也可以不用缺省的布局管理器,在程序中指定其新的布局管理器。2:觀感(LookandFeel)。答案Javaswing的一個重要特征是它的可插入的“觀感”體系。一個Swing應(yīng)用程序或一個最終用戶可指明所箝要的觀感,使得Swing應(yīng)用程序的外觀和行為都可以被定制。Swing運行一個缺省的Java觀感(也稱為Metal觀感),還實現(xiàn)了模仿M

溫馨提示

  • 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

提交評論