Java應(yīng)用程序-題庫測試題練習(xí)題帶答案測試題模擬題自測題_第1頁
Java應(yīng)用程序-題庫測試題練習(xí)題帶答案測試題模擬題自測題_第2頁
Java應(yīng)用程序-題庫測試題練習(xí)題帶答案測試題模擬題自測題_第3頁
Java應(yīng)用程序-題庫測試題練習(xí)題帶答案測試題模擬題自測題_第4頁
Java應(yīng)用程序-題庫測試題練習(xí)題帶答案測試題模擬題自測題_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

習(xí)題一、選擇題(答案可能不止一個(gè))1.()是以對(duì)象為特征的可視化程序組件?A.過程化語言 B.面向?qū)ο蟮恼Z言 C.機(jī)器語言 D.以上都不是2.Java語言在體系結(jié)構(gòu)上是()。A.過程化語言 B.抽象的 C.與平臺(tái)無關(guān)的D.特定的3.所有Java應(yīng)用程序必須包含下面哪個(gè)方法才能運(yùn)行?()A.start() B.begin() C.main() D.main(Stringargs[])4.執(zhí)行編譯好的Java程序的命令是()。A.javac B.java C.run D.execute5.在Java中,類可以具有任何數(shù)目的超類?()A.正確 B.錯(cuò)誤 6.以下哪種Java程序可訪問JVM之外的資源?()A.Java應(yīng)用程序 B.JavaApplet C.JavaServlet D.以上都不是7.Java源代碼文件可使用下列哪個(gè)擴(kuò)展名存儲(chǔ)?()A..java B..javac C..javax D..src8.子類也稱為( )。A.內(nèi)聯(lián)類 B.嵌套類 C.派生類 D.隱藏類9.以下哪個(gè)選項(xiàng)使Java得以在因特網(wǎng)上流行?A.JavaApplet B.Java應(yīng)用程序 C.Java字節(jié)碼 D.以上都不是10.以下哪個(gè)是關(guān)于Java的正確說法?( )A.僅具有編譯器 B.僅具有翻譯器 C.具有編譯器和翻譯器 D.具有字節(jié)碼閱讀器二、填空題1.Java程序有_______________________和______________________兩種類型;2.現(xiàn)有一個(gè)Java類MyJava,其權(quán)限為public,則包含該類的Java程序文件名為________________;用javac命令編譯后,得到類文件是______________________;要運(yùn)行該程序,在命令行環(huán)境下應(yīng)輸入_________________________命令;3.在Eclipse集成開發(fā)環(huán)境中開發(fā)Java程序,先要點(diǎn)擊________________菜單創(chuàng)建Java項(xiàng)目,然后點(diǎn)出__________________菜單在Java項(xiàng)目中新建Java類,接著編寫程序代碼,之后點(diǎn)出______________菜單或______________按鈕運(yùn)行程序;4.通常,主類程序都有一個(gè)__________方法,它是Java應(yīng)用程序的入口點(diǎn)。三、思考題1.與其它高級(jí)語言比較,Java語言有什么特點(diǎn)?2.環(huán)境變量classpath與path包含的內(nèi)容、實(shí)現(xiàn)的功能有什么不同?3.什么是JVM?簡述ava程序的執(zhí)行過程。四、編程題1.編寫一個(gè)主類名為MyJava1的Java程序,輸出一行“這是我編寫的第一個(gè)Java程序”文字;2.參考例題,編程實(shí)現(xiàn)如圖1、圖2所示功能:輸入圓的半徑,輸出其周長與面積: 圖1輸入圓的半徑 圖2輸出圓的周長與面積3.參考例題,編寫一個(gè)小應(yīng)用程序,輸出類似于圖3所示結(jié)果(圖片可從互聯(lián)網(wǎng)上下載):圖3小應(yīng)用程序運(yùn)行結(jié)果習(xí)題一、選擇題(答案可能不止一個(gè))1.下列哪一個(gè)不是Java語言的關(guān)鍵字?()A.if B.sizeof C.private D.null2.下列關(guān)于基本數(shù)據(jù)類型取值范圍的描述中,正確的是() A.byte類型的取值范圍為-128~128 B.boolean類型的取值為ture和false C.char類型的取值范圍為0~65536 D.short類型的取值范圍為-32768~327673.下列賦值語句中,不正確的是()A.booleanb=(5>6); B.doubled=0.0f;C.floatf=1.23; D.charc=’NBA’;4.表達(dá)式true||false&&true||false&&!true的值是()A.0 B.1 C.true D.false5.已知:intx=3;inty=6;z=x|y;則z的值為()A.6 B.7 C.8 D.96.在一個(gè)應(yīng)用程序中定義了數(shù)組a:int[]a={1,2,3,4,5,6};能夠打印輸出數(shù)組最后一個(gè)元素的語句是() A.System.out.println(a[6]); B.System.out.println(a[5]); C.System.out.println(a[4]); D.System.out.println(a[a.length]);7.觀察下列代碼段,其運(yùn)行結(jié)果中包括( )選項(xiàng) for(inti=0;i<2;i++){ for(intj=0;j<3;j++){ if(i==j) continue; System.out.println("i="+i+",j="+j); } }A.i=0,j=0 B.i=0,j=1 C.i=0,j=2 D.i=1,j=0 E.i=1,j=1 F.i=1,j=28.執(zhí)行如下代碼段后,程序的輸出結(jié)果是( ) intx=1;switch(x){ case1: ++x; System.out.print(x); case5: x++; System.out.print(x); break; default: System.out.print(x); }A.1 B.12 C.23 D.123 E.234 F.3二、填空題1.請(qǐng)將程序所缺代碼補(bǔ)充完整: public__________App1{ public_________void____________(________arg[]){ __________.out.println("你好!"); } }2.設(shè)i、d、c的數(shù)據(jù)類型分別為int、double和char型,它們的值為:i=10,d=23.4,c=’a’。請(qǐng)將表達(dá)式的值填入表格中(假定各表達(dá)式互不影響):表1表達(dá)式對(duì)應(yīng)的運(yùn)行結(jié)果表達(dá)式運(yùn)算結(jié)果表達(dá)式運(yùn)算結(jié)果r1=i++r2=++ii%3d/2d>123.45i==0i+20<=d(i<20)&&(c!=’A’)c>=’a’&&c<=’z’(int)(c+3)3.請(qǐng)把下列數(shù)學(xué)式或描述寫成Java對(duì)應(yīng)的表達(dá)式:ax2+bx+c對(duì)應(yīng)的Java表達(dá)式________________對(duì)應(yīng)的Java表達(dá)式________________對(duì)應(yīng)的Java表達(dá)式________________4x-7y+2=ab對(duì)應(yīng)的Java表達(dá)式________________place="廣東"同時(shí)sex='男'對(duì)應(yīng)的Java表達(dá)式________________ch是0—9的數(shù)字字符對(duì)應(yīng)的Java表達(dá)式________________4.某學(xué)校評(píng)選獎(jiǎng)學(xué)金的條件是主要課程的平均成績?yōu)?5分及95分以上,或是主要課程每科成績?yōu)?0分及90分以上。設(shè)某學(xué)期某年級(jí)開設(shè)了x1、x2、…、x5門主要課程,則將評(píng)選獎(jiǎng)學(xué)金的條件用Java表達(dá)式表示出來應(yīng)該是____________________________。三、思考題Java中的數(shù)據(jù)類型可分哪兩大類?基本類型包括哪8種?Java中的包名、類名、接口類、方法名的命名有什么約定俗成的規(guī)則?Java中的注釋有哪些種類?為什么編寫程序代碼時(shí)要加入注釋?為什么使用&&、||運(yùn)算符進(jìn)行邏輯運(yùn)算時(shí)容易出現(xiàn)“短路”現(xiàn)象?如何加以改進(jìn)?本章中介紹了哪幾種輸入、輸出方法?請(qǐng)注意它們的區(qū)別。比較Java中的數(shù)組與C++中的數(shù)組的異同點(diǎn)。四、編程題1.要求:以圖形界面方式輸入任意三個(gè)實(shí)數(shù),輸出其中的最大值。2.現(xiàn)有一函數(shù):請(qǐng)編寫一個(gè)程序,輸入x值,輸出y值。3.我國公民個(gè)人收入所得稅采用分級(jí)累進(jìn)方法計(jì)算,實(shí)際操作時(shí):先計(jì)算超出個(gè)稅起征點(diǎn)的金額=月收入-個(gè)稅起征點(diǎn)(現(xiàn)階段為2000元),再根據(jù)超出部分?jǐn)?shù)量多少來確定納稅等級(jí)(月收入不到個(gè)稅起征點(diǎn)的不用納稅),最后計(jì)算納稅金額=超出部分金額*相應(yīng)稅率-速算扣除數(shù)。具體見表2:表2我國個(gè)人所得稅各等級(jí)的稅率及速算扣除數(shù)級(jí)數(shù)月收入超出個(gè)稅起征點(diǎn)的金額稅率速算扣除數(shù)(元)1級(jí)不超過500元的5%02級(jí)超過500至2000元的部分10%253級(jí)超過2000元至5000元的部分15%1254級(jí)超過5000元至20000元的部分20%3755級(jí)超過20000元至40000元的部分25%13756級(jí)超過40000元至60000元的部分30%33757級(jí)超過60000元至80000元的部分35%63758級(jí)超過80000元至100000元的部分40%103759級(jí)超過100000元以上45%15375例如:某人某月收入為5000元,則他應(yīng)交納的個(gè)人所得稅可以這樣計(jì)算:超出個(gè)稅起征點(diǎn)金額:5000-2000=3000元,屬于第3級(jí)別,故:應(yīng)繳個(gè)人所得稅:3000*15%-125=450-125=325(元)請(qǐng)編寫一個(gè)程序,輸入任何一個(gè)公民的月收入,能夠計(jì)算其應(yīng)交納的個(gè)人所得稅。4.利用公式:求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-4為止。(用while語句實(shí)現(xiàn))5.36塊磚,36人搬,男搬4、女搬3、兩個(gè)小兒抬1磚,要求一次全搬完,問:男、女、小兒各幾人?6.使用Math.random()方法產(chǎn)生50個(gè)0—100的隨機(jī)整數(shù),并將它們存放到一維數(shù)組score中,然后統(tǒng)計(jì)各分?jǐn)?shù)段上的次數(shù)(即分別在0~9,10~19,20~29,…,80~89,90~100上的次數(shù)),并將分類統(tǒng)計(jì)結(jié)果存入到數(shù)組result中,最后輸出數(shù)組result各元素的值。習(xí)題一、選擇題(答案可能不止一個(gè))1.為AB類的一個(gè)無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為()A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()2.對(duì)于構(gòu)造方法,下列敘述正確的是()A.構(gòu)造方法是類的一種特殊方法,它的方法名必須與類名相同B.構(gòu)造方法的返回類型只能是void型C.構(gòu)造方法的主要作用是完成對(duì)類的對(duì)象的初始化工作D.一般在創(chuàng)建新對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造方法3.若需要定義一個(gè)類變量或類方法,應(yīng)使用哪種修飾符?()A.staticB.packageC.privateD.public4.若在某一個(gè)類定義中定義有如下的方法:abstractvoidperformDial();該方法屬于()A.本地方法B.最終方法C.靜態(tài)方法D.抽象方法5.不使用static修飾符限定的方法稱為實(shí)例方法。下列關(guān)于實(shí)例方法的說法中,正確的是()A.實(shí)例方法可以直接調(diào)用父類的實(shí)例方法B.實(shí)例方法可以直接調(diào)用父類的類方法C.實(shí)例方法可以直接調(diào)用其他類的實(shí)例方法D.實(shí)例方法不可以直接調(diào)用本類的類方法6.在Java中,一個(gè)類可同時(shí)定義許多同名的方法,這些方法的形式參數(shù)的個(gè)數(shù)、類型或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦蛱匦苑Q為()A、隱藏B、覆蓋C、重載D、Java不支持此特性7.設(shè)有下面的一個(gè)類定義:classAA{staticvoidShow(){ System.out.println(“我喜歡Java!”);}}classBB{voidShow(){System.out.println(“我喜歡C++!”);}}若已經(jīng)使用AA類創(chuàng)建對(duì)象a和BB類創(chuàng)建對(duì)象b,則下面哪一個(gè)方法調(diào)用是正確的?()A.a.Show()B.AA.Show()C.AA.Show()D.a.Show()b.Show()BB.Show()b.Show()BB.Show()8.關(guān)于下列代碼,哪那個(gè)語句的描述是正確的?()publicclassPerson{ staticintarr[]=newint[10]; publicstaticvoidmain(Stringa[]){ System.out.println(arr[1]); }}A.編譯時(shí)將產(chǎn)生錯(cuò)誤B.編譯時(shí)正確,運(yùn)行時(shí)將產(chǎn)生錯(cuò)誤C.輸出零D.輸出空9.

下列方法定義中,正確的是()

A.intx(){charch='a';return(int)ch;}B.voidx(){...returntrue;}

C.intx(){...returntrue;}D.intx(inta,b){returna+b;}10.在某個(gè)類A中存在一個(gè)方法:voidgetSort(intx),以下能作為這個(gè)方法的重載的聲明的是()A.voidgetSort(floatx)B.intgetSort(inty)C.doublegetSort(intx,inty)D.voidget(intx,inty)11.有一個(gè)類A,以下為其構(gòu)造方法的聲明,正確的是()A.voidA(intx){...}B.A(intx){...}C.a(intx){...}D.voida(intx){...}12.符合對(duì)象和類關(guān)系的是()A.人和老虎B.書和汽車C.樓和建筑物D.汽車和交通工具二、填空題1.定義一個(gè)類包括類的聲明和_______兩個(gè)部分。2.Java中類成員的訪問修飾符有以下幾種:private,public,_______,________;類的訪問修飾符只能使用缺省和________。3.類的類型修飾符包含了缺省、及三種,分別對(duì)應(yīng)具體類、抽象類和最終類三種類型。4.this除了可以用作對(duì)當(dāng)前對(duì)象的引用外,還可以使用this調(diào)用構(gòu)造方法以及訪問___________的成員變量。5.如果子類中的某個(gè)方法的名字、返回值類型和參數(shù)列表與它的父類中的某個(gè)方法完全一樣,則稱子類中的這個(gè)方法__________了父類的同名方法。6.創(chuàng)建一個(gè)名為MyPackage的包的語句是,該語句應(yīng)該放在程序的位置為。三、思考題1.面向?qū)ο缶幊陶Z言的基本特征是什么?2.什么是對(duì)象?什么是類?對(duì)象與類的關(guān)系是什么?3.類變量與實(shí)例變量的區(qū)別?4.類方法與實(shí)例方法的區(qū)別?5.什么是方法的重載?6.構(gòu)造方法有什么作用?7.Java中引入包的優(yōu)點(diǎn)是什么?8.如何將需要的外部類引入程序中?如何引用包中的某個(gè)類?如何引用整個(gè)包?四、編程題1.根據(jù)下面的要求實(shí)現(xiàn)圓類Circle:Circle類的成員變量:radius半徑Circle類的成員方法:(1)Circle()構(gòu)造方法,將半徑置為0(2)Circle(doubler)構(gòu)造方法,創(chuàng)建Circle對(duì)象時(shí)將半徑初始化為r(3)doublegetRadius()獲得圓的半徑值(4)voidsetRadius(doubler)設(shè)置圓的半徑(5)doublegetPerimeter()獲得圓的周長(6)doublegerArea()獲得圓的面積接著再定義一個(gè)類CircleTest,用來調(diào)用Circle類,具體如下:在CircleTest類的main()方法中創(chuàng)建一個(gè)半徑為0的對(duì)象c1,再調(diào)用它的setRadius()修改其半徑值為50,然后輸出c1的周長和面積。2.先定義一個(gè)教師類Teacher,它封裝了:三個(gè)成員變量: strNo //表示工號(hào) strName //表示姓名 intWorkAge //表示工齡四個(gè)成員方法: Teacher(Stringno,Stringname,intworkAge) //構(gòu)造方法 getTeacherNo() //獲取教師工號(hào) getTeacherName() //獲取教師姓名 getTeacherWorkAge() //獲取教師工齡接著再定義一個(gè)類TeacherTest,用來調(diào)用Teacher類,具體如下: 在Teacher類的main()方法中創(chuàng)建一個(gè)工號(hào)為“0234”、姓名為“張三”、工齡為35年的對(duì)象t1,然后輸出t1的工號(hào)、姓名和工齡。3.設(shè)計(jì)學(xué)生類student,屬性包括:sno、sname、Chinese(語文成績)、Math(數(shù)學(xué)成績)和Phsic(物理成績),,然后創(chuàng)建一個(gè)包含四個(gè)元素的對(duì)象數(shù)組stu,stu使用表1中的數(shù)據(jù)進(jìn)行初始化,要求輸出三門成績總和為最高的學(xué)生學(xué)號(hào)和姓名。表1類屬性及屬性值4.請(qǐng)按要求設(shè)計(jì)一個(gè)課程類Course,它封裝了:三個(gè)成員變量: courseID //課程代號(hào) courseName //課程名稱 credit //課程學(xué)分四個(gè)重載的構(gòu)造器: Course() //默認(rèn)的構(gòu)造器 Course(StringcourseID) //單參數(shù)的構(gòu)造器 Course(StringcourseID,StringcourseName) //兩個(gè)參數(shù)的構(gòu)造器 Course(StringcourseID,StringcourseName,intcredit) //三個(gè)參數(shù)的構(gòu)造器要求:Course(StringcourseID,StringcourseName)構(gòu)造器要調(diào)用Course(StringcourseID,StringcourseName,intcredit)構(gòu)造器。習(xí)題一、選擇題(答案可能不止一個(gè))1.現(xiàn)有:Stringstr1="Java";Stringstr2=newString("Java");Stringstr3="Java";Stringstr4=newString("Java");在下列表達(dá)式中,結(jié)果為true的有()A.str1==str2; B.str1==str3; C.str2==str4; D.pareTo(str4);2.若有:Stringstr1="Java";Stringstr2=newString("Java");Stringstr3="Java";Stringstr4=newString("Java");在下列表達(dá)式中,結(jié)果為true的有()A.str1.equals(str2); B.str1.equals(str3); C.str2.equals(str4); D.pareTo(str3);3.現(xiàn)有:Stringstr="Tel:(020)87818998";若要得到第二個(gè)“8”的位置,可調(diào)用()方法A.str.indexOf('8'); B.str.lastIndexOf('8');C.str.indexOf('8',strr.indexOf('8')+1); D.str.charAt('8');4.若有:Stringstr=newString("廣州亞運(yùn)會(huì)")轉(zhuǎn)換為字節(jié)數(shù)組,正確的語句()A.byteb[]=str.getBytes(); B.byteb[]=str.getchars(); C.byteb[]=str.getBytes("GBK"); D.byteb[]=newByte(str);5.以下表達(dá)式中,正確的有()A.Stringstr=""+6; B."test".trim(); C."nba".toUpperCase();D.Stringwords[]="Whatisyourname?".split();6.具有append()方法的是()類 A.String B.StringBuffer C.Math D.StringTokenizer7.要產(chǎn)生[1,100]的隨機(jī)整數(shù),可通過( )語來實(shí)現(xiàn) A.(int)(1+Math.random()*100); B.(int)(1+Math.random()*99); C.(int)(1+Math.random()*101); D.(int)(Math.random()*101);8.要將字符串"678"轉(zhuǎn)換成int類型數(shù)據(jù),正確的語句是( ) A.Double.parseDouble("678"); B.Int.parseInt("678"); C.Integer.parseInt("678"); D.Integer.valueOf("678");9.要獲得當(dāng)前系統(tǒng)時(shí)間的毫秒數(shù),正確的方法有( ) A.Datenow=newDate()

;longn=now.getTime(); B.System.currentTimeMillis(); C.Calendarcal=newGregorianCalendar();longn=cal.getTimeInMillis(); D.Calendarcal=newCalendar();longn=cal.getTime();10.假設(shè)系統(tǒng)時(shí)間為2010年10月1日0時(shí)0分0秒0毫秒,則執(zhí)行如下語句:Calendarcal=newGregorianCalendar();System.out.println(cal.get(Calendar.MONTH));后將輸出( ) A.1 B.4 C.5 D.6二、填空題1.調(diào)用____________表達(dá)式可得到圓周率的近似值;2.執(zhí)行StringBufferbuffer=newStringBuffer();語句后,buffer的初始容量為____字節(jié);3.若要?jiǎng)?chuàng)建一個(gè)指定時(shí)間:2008年8月8日20時(shí)0分0秒的對(duì)象,可用____________________語句來實(shí)現(xiàn);4.SimpleDateFormat類的功能是____________________________。三、思考題1.字符串常量與使用newString("…")方法構(gòu)造的字符串有什么不同?2.比較字符串時(shí),使用“==”運(yùn)算符與調(diào)用equals()方法有什么差異?3.StringBuffer與String相比,有什么優(yōu)點(diǎn)?4.基本數(shù)據(jù)類型的包裝類有什么用途?5.比較Date類與Calendar類的區(qū)別。四、編程題1.編寫一個(gè)Java程序,實(shí)現(xiàn)下列功能:(1)聲明一個(gè)名為str的String對(duì)象,并使它的內(nèi)容初始化為“Howareyou?”;(2)打印整個(gè)字符串內(nèi)容;(3)輸出字符串的長度;(4)輸出字符串的第一個(gè)字符;(5)輸出字符串的最后一個(gè)字符;(6)輸出字符串中的第一個(gè)單詞(提示:先查找第一個(gè)空格位置,再獲取該位置之前的子串);(7)以大寫字母方式輸出字符串內(nèi)容。2.編寫一個(gè)Java程序,實(shí)現(xiàn)如下功能:(1)聲明一個(gè)名為bufferr的StringBuffer對(duì)象,并使它的內(nèi)容初始化為“C++”;(2)輸出buffer的內(nèi)容;(3)使用append()方法在尾部追加“是一種編程語言”字符串;(4)使用insert()方法在“一種”和“編程”之間插入“面向?qū)ο蟆弊址?5)使用replace()方法將字符串中的“C++”內(nèi)容替換成“Java”;(6)使用delete()方法刪除字符串中的“一種”兩個(gè)漢字;(7)將buffer對(duì)象翻轉(zhuǎn)(即從尾到頭),再轉(zhuǎn)換為String對(duì)象,并輸出。3.使用Math.random()方法產(chǎn)生50個(gè)0—100的隨機(jī)整數(shù),并將它們存放到一維數(shù)組score中,然后統(tǒng)計(jì)各分?jǐn)?shù)段上的次數(shù)(即分別在0—9,10—19,20—29,…,80—89,90—100上的次數(shù)),并將分類統(tǒng)計(jì)結(jié)果存入到數(shù)組result中,最后輸出數(shù)組result各元素的值。4.編程實(shí)現(xiàn):輸入任意一個(gè)正整數(shù),輸出其對(duì)應(yīng)的二進(jìn)制、八進(jìn)制、十六進(jìn)制字符串。5.借助SimpleDateFormat類輸出系統(tǒng)的當(dāng)前時(shí)間,輸出格式為: 北京時(shí)間:xxxx年xx月xx日xx時(shí)xx分xx秒。習(xí)題一、選擇題(答案可能不止一個(gè))1.設(shè)有下面兩個(gè)類的定義:classPerson{}classStudentextendsPerson{longid; //身份證號(hào)intscore; //入學(xué)總分Stringname;//姓名intgetScore(){returnscore;}}問:類Person和類Student的關(guān)系是()。 A.包含關(guān)系B.繼承關(guān)系C.關(guān)聯(lián)關(guān)系D.無關(guān)系,上述類定義有語法錯(cuò)誤2.設(shè)有下面的兩個(gè)類定義: classAA{voidShow(){System.out.println(“我喜歡Java!”);}classBBextendsAA{voidShow(){System.out.println(“我喜歡C++!”);} }則順序執(zhí)行如下語句后輸出結(jié)果為:()AAa;BBb;a.Show(); b.Show();A.我喜歡Java!B.我喜歡C++!我喜歡C++!我喜歡Java!C.我喜歡Java!D.我喜歡C++!我喜歡Java!我喜歡C++!3.在Java中,一個(gè)類可同時(shí)定義許多同名的方法,這些方法的形式參數(shù)的個(gè)數(shù)、類型或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦蛱匦苑Q為()。A、隱藏B、覆蓋C、重載D、Java不支持此特性4.對(duì)于子類的構(gòu)造方法說明,下列敘述中不正確的是()。A.子類無條件地繼承父類的無參構(gòu)造方法。B.子類可以在自己的構(gòu)造方法中使用super關(guān)鍵字來調(diào)用父類的含參數(shù)構(gòu)造方法,但這個(gè)調(diào)用語句必須是子類構(gòu)造方法的第一個(gè)可執(zhí)行語句。C.在創(chuàng)建子類的對(duì)象時(shí),將先執(zhí)行繼承自父類的無參構(gòu)造方法,然后再執(zhí)行自己的構(gòu)造方法。D.子類不但可以繼承父類的無參構(gòu)造方法,也可以繼承父類的有參構(gòu)造方法。5.給出下面代碼:1)classParent{2)privateStringname;3)publicParent(){}4)}5)publicclassChildextendsParent{6)privateStringdepartment;7)publicChild(){}8)publicStringgetValue(){returnname;}9)publicstaticvoidmain(Stringarg[]){10)Parentp=newParent();11)}12)}那些行將引起錯(cuò)誤?() A.第3行B.第6行C.第7行D.第8行6.類Teacher和Student是類Person的子類;Personp;Teachert;Students;//p,tandsareallnon-null.if(tinstanceofPerson){s=(Student)t;}最后一句語句的結(jié)果是:() A.將構(gòu)造一個(gè)Student對(duì)象B.表達(dá)式是合法的C.表達(dá)式是錯(cuò)誤的D.編譯時(shí)正確,但運(yùn)行時(shí)錯(cuò)誤7.對(duì)于下列代碼:1)classPerson{2)publicvoidprintValue(inti,intj){//...}3)publicvoidprintValue(inti){//...}4)}5)publicclassTeacherextendsPerson{6)publicvoidprintValue(){//...}7)publicvoidprintValue(inti){//...}8)publicstaticvoidmain(Stringargs[]){9)Persont=newTeacher();10)t.printValue(10);11)}第10行語句將調(diào)用哪行語句?()A.line2B.line3C.line6D.line78.對(duì)于下列代碼:()publicclassParent{ publicintaddValue(inta,intb){ ints; s=a+b; returns; } }classChildextendsParent{}下述哪些方法可以加入類Child?A.intaddValue(inta,intb){//dosomething...}B.publicvoidaddValue(inta,intb){//dosomething...}C.publicintaddValue(inta){//dosomething...}D.publicintaddValue(inta,intb)throwsMyException{//dosomething...}9.給出下面代碼,那個(gè)選項(xiàng)是正確的?()publicclasstest{ staticinta[]=newa[10]; publicstaticvoidmain(Stringargs[]){ System.out.println(arr[10]); }} A.編譯時(shí)將產(chǎn)生錯(cuò)誤B.輸出零C.編譯時(shí)正確,運(yùn)行時(shí)將產(chǎn)生錯(cuò)誤D.輸出空二、填空題1.是一種軟件重用形式,在這種形式中,新類獲得現(xiàn)有類的數(shù)據(jù)和方法,并可增加新的功能。2.派生類構(gòu)造方法可以通過關(guān)鍵字調(diào)用基類構(gòu)造方法。2.多態(tài)是指,在Java中有兩種多態(tài),一種是使用方法的實(shí)現(xiàn)多態(tài),另一種是使用方法的實(shí)現(xiàn)多態(tài)。3.Java中所有類都是類的子類。4.被關(guān)鍵字修飾的方法是不能被當(dāng)前類的子類重新定義的方法。三、思考題1.比較Overload(方法重載)和Override(方法覆蓋)的區(qū)別。2.在創(chuàng)建派生類的對(duì)象的時(shí)候,基類與派生類中構(gòu)造方法的調(diào)用順序怎樣?3.比較this和super的區(qū)別4.什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計(jì)為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點(diǎn)?四、編程題1.編寫一個(gè)學(xué)生類Student,要求:(1)學(xué)生類Student屬性有:id:long型,代表學(xué)號(hào)name:String類對(duì)象,代表姓名age:int型,代表年齡sex:boolen型,代表性別(其中:true表示男,false表示女)phone:String類對(duì)象,代表聯(lián)系電話(2)學(xué)生類Student的方法有:Student(longi,Stringn,inta,booleans,longp):有參構(gòu)造方法,形參表中的參數(shù)分別初始化學(xué)號(hào)、姓名、年齡、性別和聯(lián)系電話。intgetAge()():獲取年齡作為方法的返回值。booleangetSex()():獲取性別作為方法的返回值。longgetPhone():獲取聯(lián)系電話作為方法的返回值。publicStringtoString():以姓名:聯(lián)系電話的形式作為方法的返回值2.編寫一個(gè)圓類,要求: (1)Circle類的成員變量:radius半徑(2)Circle類的成員方法:①Circle()構(gòu)造方法,將半徑置為0②Circle(doubler)構(gòu)造方法,創(chuàng)建Circle對(duì)象時(shí)將半徑初始化為r③doublegetRadius()獲得圓的半徑值④doublegetPerimeter()獲得圓的周長⑤doublegerArea()獲得圓的面積⑥voiddisp()將圓的半徑、周長、面積輸出到屏幕 (3)創(chuàng)建圓的派生類圓柱體類Cylinder,要求如下:Cylinder類的成員變量:height表示圓柱體的高Cylinder類的方法成員:①Cylinder(doubler,doubleh)構(gòu)造方法,創(chuàng)建Cylinder對(duì)象時(shí)將圓半徑初始化為r,圓柱高初始化為h②doublegetHeight()獲得圓柱體的高③doublegetVol()獲得圓柱體的體積④voiddispVol()將圓柱體的體積輸出到屏幕3.按要求編寫程序:(1)基類:Point(點(diǎn))類,它封裝了: 兩個(gè)成員變量: x //點(diǎn)的橫坐標(biāo),int型 y //點(diǎn)的縱坐標(biāo),int型 七個(gè)成員方法:: Point() //默認(rèn)構(gòu)造方法,x和y均取值為0; Point(intx,inty) //帶參數(shù)的構(gòu)造方法; setX(intx) //設(shè)置點(diǎn)的橫坐標(biāo) getX() //獲得點(diǎn)的橫坐標(biāo) setY(inty) //設(shè)置點(diǎn)的縱坐標(biāo) getY() //獲得點(diǎn)的縱坐標(biāo) toString() //返回形如:“點(diǎn)(10,25)”的信息(2)派生類:Circle(圓)類,它新增了: 一個(gè)成員變量: radius //圓的半徑,float型 七個(gè)成員方法:: Circle() //默認(rèn)構(gòu)造方法,radius取值為0.0f,調(diào)用基類默認(rèn)構(gòu)造方法; Circle(intx,inty,floatr)//帶參數(shù)的構(gòu)造方法,調(diào)用基類帶參數(shù)構(gòu)造方法; setRadius(intr) //設(shè)置圓的半徑 getRadius() //得到圓的半徑 getArea() //獲得圓的面積 getPerimeter() //獲得圓的周長 toString() //重寫基類的toString()方法,返回形如: //“圓點(diǎn)(10,25),半徑:5.5,周長:xxx,面積:xxxx”的信息(3)主類:InheritTest,在它的main()方法中創(chuàng)建一個(gè)圓點(diǎn)位置為(10,25),半徑為5.5的圓對(duì)象c,然后分別調(diào)用基類和派生類的toString()方法輸出點(diǎn)和圓的相應(yīng)信息。習(xí)題一、選擇題(答案可能不止一個(gè))1.下面的是關(guān)于類及其修飾符的一些描述,正確的是:()。A.a(chǎn)bstract類只能用來派生子類,不能用來創(chuàng)建abstract類的對(duì)象。B.final類不但可以用來派生子類,也可以用來創(chuàng)建final類的對(duì)象。C.a(chǎn)bstract不能與final同時(shí)修飾一個(gè)類。D.a(chǎn)bstract方法必須在abstract類中聲明,但abstract類定義中可以沒有abstract方法。2.在使用interface聲明一個(gè)接口時(shí),只可以使用(d)修飾符修飾該接口。A.privateB.protectedC.privateprotectedD.public3.給定下列程序,哪些是正確的?() publicabstractinterfaceFrobnicate{ publicvoidtwiddle(Strings); } A.publicabstractclassFrobimplementsFrobnicate{ publicabstractvoidtwiddle(Strings){}} B.publicclassFrobextendsFrobnicate{ publicvoidtwiddle(Strings){} publicvoidtwiddle(Integeri){}}C.publicabstractclassFrobimplementsFrobnicate{}D.publicclassFrobextendsFrobnicate{ publicvoidtwiddle(Integeri){}}二、填空題1.方法是一種僅有方法聲明,沒有方法體的方法,該方法必須在抽象類之中定義。2.如果某個(gè)子類沒有覆蓋抽象方法,則必須被聲明為類。3.如果一個(gè)類沒有覆蓋接口定義中的全部方法,則必須被聲明為類。三、判斷題1.接口是特殊的類,所以接口也可以繼承,子接口將繼承父接口的所有常量和抽象方法。()2.抽象方法必須在抽象類中,所以抽象類中的方法都必須是抽象方法。()3.一個(gè)類如果實(shí)現(xiàn)了某個(gè)接口,那么它必須重載該接口中的所有方法。()4.類在實(shí)現(xiàn)接口的方法時(shí),必須顯示地使用public修飾符。()5.實(shí)現(xiàn)一個(gè)接口,則在類中一定要實(shí)現(xiàn)接口中的所有方法。()6.抽象類不能實(shí)例化。()7.接口名可以作為方法返回值的類型。()四、思考題1.為什么要使用抽象類?如何定義抽象類和抽象方法?抽象類中是否可以不包含抽象方法?2.什么是接口?為什么要定義接口?接口與抽象類有何異同?3.如何定義接口?使用什么關(guān)鍵字?4.一個(gè)類如何實(shí)現(xiàn)接口?實(shí)現(xiàn)接口的類是否一定要重寫該接口中的所有抽象方法?五、編程題:根據(jù)如圖1所示的UML圖設(shè)計(jì)各類和接口,然后再創(chuàng)建一個(gè)包含main()的類來測試這些類和接口,要求輸出以下文本:魚喜歡吃草,狗喜歡啃骨頭魚使用螵呼吸,狗使用肺呼吸狗正在和一只可憐的老鼠逗著玩呢 圖1類和接口的層次圖習(xí)題一、選擇題1.以下哪個(gè)是所有異常和錯(cuò)誤的基類()A.Exception B.Throwable C.Error D.RuntimeException2.以下哪個(gè)關(guān)鍵字用于拋出一個(gè)異常()A.throw B.thorwn C.throws D.cacth以下哪一個(gè)是用戶定義的異常類的正確聲明()A.ClassAextendsB{…}B.ClassAextendsException{…}C.ClassAextendsBimplementsException{…}D.ClassAextendsextendsExceptionimplementsException{…}下列說法中錯(cuò)誤的是()A.子類可以與超類方法拋出相同類型的異常;B.子類可以拋出超類方法所拋出的異常的子類;C.子類中的方法拋出的異常數(shù)目可以少于超類中方法所拋出的異常數(shù)目,或者不需要拋出任何異常。D.自定義異常不一定要繼承Exception及其子類;5.下列說法中錯(cuò)誤的是()A.try、catch、finally這三個(gè)關(guān)鍵字都不能單獨(dú)使用。B.try語句finally組成try...finally結(jié)構(gòu)。C.catch語句可以有一個(gè)或多個(gè)。D.finally語句可以有一個(gè)或多個(gè)。二、填空題1.Throwable類有兩個(gè)直接類:___________指JVM系統(tǒng)內(nèi)部錯(cuò)誤、資源耗盡等嚴(yán)重情況;_____指其它因編程錯(cuò)誤或偶然的外在因素導(dǎo)致的一般性問題。在Exception類中,返回當(dāng)前異常對(duì)象信息的描述的方法是_______________;返回當(dāng)前異常對(duì)象信息的詳細(xì)描述的方法是:_____________;用來跟蹤異常事件發(fā)生時(shí)執(zhí)行堆棧的內(nèi)容的方法是______________.如果Java運(yùn)行時(shí)系統(tǒng)找不到可以捕獲異常的方法,則運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將________。在Java中用關(guān)鍵字_____________聲明拋出的異常。無論是否拋出異常都要執(zhí)行的語句應(yīng)用放到_________語句中。三、思考題1.關(guān)鍵字throw的作用是什么?關(guān)鍵字throws的作用是什么?2.假設(shè)statement2引起以下try-catch代碼塊的異常。try{ statement1; statement2; statement3;}catch(Exception1e1){}catch(exception2e2){}statement4;回答以下問題:statement3將被執(zhí)行嗎?如果沒有捕獲異常,還執(zhí)行statement4嗎?如果在catch子句中捕獲到異常,statement4將被執(zhí)行嗎?3.假設(shè)statement2引起以下try-catch代碼塊的異常。try{statement1;statement2;statement3;}catch(Exception1e1){}catch(exception2e2){}catch(exception3e3){throwe3;}finally{statement4;}Statement5;回答以下問題:如果沒有捕獲異常,還執(zhí)行statement5嗎?如果異常類型是statement3,statement4執(zhí)行嗎?statement5將被執(zhí)行嗎?4.下列代碼的會(huì)出現(xiàn)什么問題?classtest{ publicstaticvoidmain(Stringargs[]){ try{inta=Integer.parseInt(args[0]);intb=0;intc=a/b;}catch(Exceptionex){.....}catch(RuntimeExceptionex){.....}}}習(xí)題判斷題1.Java泛型的本質(zhì)是參數(shù)化類型。( )2.Java數(shù)組的協(xié)變性(covariant)是指如果類Base是類Sub的基類,那么Base[]就是Sub[]的基類。Java泛型也是協(xié)變的,就是說如果類Base是類Sub的基類,那么List<Base>就是List<Sub>的基類。( )3.根據(jù)Java集合框架中的定義,JavaSet集合中的元素是可以重復(fù)的。( )4.JavaList集合與Java數(shù)組相似,JavaList集合的長度也是固定的。( )5.List主要特征是其元素以線型方式存儲(chǔ),集合中可以存放重復(fù)的對(duì)象。()6.泛型類的構(gòu)造方法仍然和普通類的構(gòu)造方法形式是一樣的,不帶參數(shù)。( )7.Java集合中Map是一種把鍵對(duì)象和值對(duì)象進(jìn)行映射的集合,他的每一個(gè)元素都包含一個(gè)鍵對(duì)象,一個(gè)值對(duì)象,鍵對(duì)象相當(dāng)于值對(duì)象的索引,而且值對(duì)象不可以是Map類型的。( )8.Java集合中ArrayList是長度可變的數(shù)組??梢詫?duì)元素快速的隨機(jī)訪問。( )9,Java集合中Set最為主要的特征是集合中的對(duì)象不按照特定的方式排序,但是可以有重復(fù)的對(duì)象。( )10.Java語言在使用泛型類時(shí)必須指定泛型類型參數(shù)。( )二、填空題1.定義泛型時(shí),泛型參數(shù)放到尖括號(hào)中,其功能類似于方法的形參。在實(shí)例該類時(shí)要為參數(shù)傳入實(shí)際參數(shù),泛型參數(shù)的的實(shí)際參數(shù)只能是類類型,包括自定義的類型,而不能是類型。2.Java泛型就是在定義、時(shí)指定類型形參類型形參將在聲明該類型變量、創(chuàng)建該類對(duì)象時(shí)確定,即傳入類型實(shí)參。Java的參數(shù)化類型稱為泛型(GenericType或Generic)。3.JavaSE5.0改寫了集合框架中的全部接口和類,提供泛型支持,在聲明集合變量、創(chuàng)建集合對(duì)象時(shí),傳入。4.如果Foo是Bar的一個(gè)子類型,G是一個(gè)Java泛型,那么,G<Foo>G<Bar>的子類,F(xiàn)oo[]Bar[]的子類。5.泛型可以被繼承或?qū)崿F(xiàn),但是泛型作為父類或父接口時(shí),不能再包含有,而只能包含有泛型實(shí)參。6.Java編譯器允許在使用泛型是不傳入實(shí)際參數(shù),在使用Java編譯器javac編譯時(shí)會(huì)產(chǎn)生警告??梢酝ㄟ^使用編譯器的–Xlint:unchekched選項(xiàng)查看詳細(xì)信息。7.泛型的類型參數(shù)的實(shí)參只能是類類型,不能是。8.Java集合類和數(shù)組不同,數(shù)組元素既可以是類型,也可以是對(duì)象類型;而集合中的元素只能是。9.Java集合類主要由2個(gè)接口派生,一個(gè)是,另一個(gè)是。10.Java集合可分成類,其中Set集合中的元素不能;List集合非常像;Mapj集合的元素由2個(gè)值組成,一個(gè)是,一個(gè)是。11.Iterator接口是Java集合框架中的成員,和Cllection、Map集合不一樣,Iteratoer接口主要用于Cllection集合中的元素。Iterator又稱。12.Java中除了可以使用Iterator接口的方式訪問Cllection集合類中的元素,Java1.5還提供了循環(huán)來迭代訪問Cllection集合中的元素。三、編程題1.在程序中聲明一個(gè)HashSet集合類的對(duì)象hset,向hset中添加字符串元素“hello”,”world”,”你好”,“Java”,“Java泛型”和“Java集合”。用hset的iterator()方法生成迭代器it,使用it的hasNext()方法迭代輸出集合中的元素。2.使用foreach循環(huán)語句遍歷輸出上體中集合的元素。3.定義一個(gè)具有一個(gè)參數(shù)的泛型類,在其中定義2個(gè)泛型方法,分別返回2個(gè)泛型形參的和與差,在main()函數(shù)中分別傳入Double、Float、Integer類型實(shí)參,驗(yàn)證方法的執(zhí)行。4.在main()方法中分別聲明HashSet、ArrayList和HashMap()集合,向集合中添加若干元素,然后輸出各集合中所有元素。查看JavaAPI文檔,找到各種集合添加元素的方法,注意Map集合的元素為一個(gè)“鍵-值對(duì)”。Map集合輸出元素的方法也不同Cllection集合類型。習(xí)題一、選擇題(答案可能不止一個(gè))1.下列選項(xiàng)中,哪些屬于File類的功能?()A.查看文件大小 B.創(chuàng)建目錄 C.刪除文件 D.讀取文件中的數(shù)據(jù)2.File類可以表示() A.文件 B.目錄 C.輸入流 D.輸出流3.要在磁盤上創(chuàng)建一個(gè)文件,可以使用()類的實(shí)例。A.File B.FileOutputStream C.RandomAccessFile D.以上全對(duì)4.下列選項(xiàng)中,哪些類使用了緩沖區(qū)技術(shù)?()A.FileInputStream B.FileReader C.BufferedOutputStream D.PrintWriter5.InputStreamReader的直接父類是()A.Object B.Reader C.InputStream D.Writer6.DataOutputStream實(shí)現(xiàn)了()接口 A.DataInput B.DataOutput C.Serializable D.RandomAccessFile7.下列選項(xiàng)中,哪些不是BufferedReader的方法?( )A.read() B.readLine() C.newLine() D.close()8.要向myfile.txt文件寫入內(nèi)容,可選用的類有哪些?()A.FilterOutStream B.FileOutputStream C.FileWriter D.PrintWriter二、填空題1.在文本編輯器中,通常包含“文件”菜單,請(qǐng)指出下列菜單項(xiàng)中,使用的流是屬于輸入流還是輸出流?應(yīng)如何操作?(1)“新建”:_____________________________________;(2)“打開”:_____________________________________;(3)“保存”:_____________________________________;(4)“另存為”:___________________________________。2.要?jiǎng)?chuàng)建RandomAccessFile類對(duì)象,以只讀方式打開c:\mymobile\blacknames.txt,正確的語句是______________________________。3.標(biāo)準(zhǔn)輸入流對(duì)象System.in、標(biāo)準(zhǔn)輸出流對(duì)象System.out是______________類的實(shí)例。4.readObject()和writeObject()分別是____________________類和____________________類的方法。5.InputStreamReader、OutputStreamWriter類分別實(shí)現(xiàn)______________________________________和___________________________________功能。6.FileInputStream實(shí)現(xiàn)對(duì)磁盤文件的讀取操作,在讀取字符的時(shí)候,它一般與_____________類和_______________類一起使用。三、思考題1.用File表示的文件或目錄是否一定要存在?若不存在,應(yīng)如何創(chuàng)建?2.比較下列三組概念的差異:(1)輸入流與輸出流;(2)字節(jié)流與字符流;(3)文件字節(jié)流與文件字符流。如何理解I/O流操作中的“逐層包裝”思想?FilterInputStream/FilterOutputStream有哪些典型子類?請(qǐng)各舉出2個(gè)例子,并說明它們的功能。當(dāng)創(chuàng)建FileInputStream對(duì)象時(shí),如果對(duì)應(yīng)的文件不存在,會(huì)拋出何種異常?6.有人說“RandomAccessFile類既是輸入流,又是輸出流”,你是否同意這種說法?請(qǐng)說明原因。四、編程題1.利用File類和遞歸方法,列出指定目錄下的文件及各級(jí)子目錄包含的內(nèi)容。2.使用字節(jié)流實(shí)現(xiàn)文件的拷貝,要求一次能夠讀寫多個(gè)字節(jié)(如:512字節(jié)等)。3.編程實(shí)現(xiàn):從鍵盤輸入若干名學(xué)生的信息資料(學(xué)號(hào)、姓名、年齡,按Ctrl+z結(jié)束),然后將輸入的所有信息保存到文件students.dat中。4.創(chuàng)建一個(gè)名為DisplayFile.java的應(yīng)用,它能夠打開、讀取并顯示任何文本文件的內(nèi)容。5.請(qǐng)創(chuàng)建一個(gè)類Book,它的屬性有:bookName(書名)、authors(作者)、ISBN(ISBN號(hào))、price(價(jià)格)、pressHouse(出版社),并讓它具備對(duì)象序列化功能。然后用2個(gè)對(duì)象來演示序列化、反序列化的實(shí)現(xiàn)步驟。6.某一學(xué)院2009—2010學(xué)年第一學(xué)期學(xué)生選課資料存放在文件sc091001.xls中,第一個(gè)工作表的一部分如表1所示: 表1學(xué)生選課信息課程代碼課程名稱學(xué)號(hào)姓名SS2008數(shù)據(jù)結(jié)構(gòu)與算法0840110001喜羊羊SS2008數(shù)據(jù)結(jié)構(gòu)與算法0840110002灰太狼SS2008數(shù)據(jù)結(jié)構(gòu)與算法0840110003錢不多請(qǐng)用JavaExcel組件讀取其內(nèi)容,并顯示輸出。習(xí)題一、選擇題1.容器Panel和Applet缺省使用的布局編輯策略是?()A、BorderLayout B、FlowLayoutC、GridLayout D、CardLayout2.AWT組件,從各組件的本來功能角度考慮,最好使用哪種組件:

A、TextAreaB、Panel

C、AppletD、Canvas

3.下列屬于圖形用戶界面元素的有:()A.Applet B.窗口 C.按鈕 D.線程4.如果希望所有的控件在界面上均勻排列,應(yīng)該使用下列那種布局管理器?()A.BoxLayout B.GridLayoutC.BorderLayout D.FlowLayout5.下列用戶圖形界面組件在軟件安裝程序中常見的是()

A、滑塊B、進(jìn)度條C、對(duì)話框D、標(biāo)簽

6.每個(gè)使用Swing組件的程序必須至少有一個(gè)()A.按鈕 B.頂層容器 C.標(biāo)簽 D.菜單二、填空題1.Java中有提供豐富的圖形功能的______________和javax.swing兩個(gè)包。AWT:是AbstractWindowToolkit的縮寫,中文意思是“抽象窗口工具包”;Swing:又稱為輕量級(jí)組件,它是Java的改進(jìn)版本。2.AWT包中的組件可分為三大類:___________,如窗口(Window)等;獨(dú)立組件,如標(biāo)簽(Label)等;菜單類,如菜單條(MenuBar)等。3.Java把Component類的子類或間接子類創(chuàng)建的對(duì)象稱為___________,把Container的子類或間接子類創(chuàng)建的對(duì)象稱為一個(gè)容器。4.在Swing用戶界面的程序設(shè)計(jì)中,____________可以被添加到其它容器中去。5.對(duì)話框有_____________和____________兩種。這兩種對(duì)話框的區(qū)別是:當(dāng)____________對(duì)話框彈出時(shí),只有關(guān)閉此對(duì)話框才能繼續(xù)進(jìn)行其它窗口的操作;當(dāng)_________________對(duì)話框彈出時(shí),即使不關(guān)閉,也可以對(duì)后面的的窗口進(jìn)行操作。三、思考題1.JavaGUI中有哪些容器類?哪些是組件類?2.Swing和AWT是什么關(guān)系?Swing有什么特點(diǎn)?3.JavaGUI中有哪幾種常用的布局方式,各有什么特點(diǎn)?4.下拉菜單和彈出菜單設(shè)計(jì)用了哪些類?其設(shè)計(jì)步驟包含哪些?5.Jtable和JTree的構(gòu)造函數(shù)分別有哪些?四、編程題1.編寫java應(yīng)用程序,在Frame上面放一個(gè)Panel。在Panel上面添加兩個(gè)按鈕。要求Panel的背景顏色為灰色,F(xiàn)rame大小為長100,寬100,在屏幕坐標(biāo)(100,100)的位置顯示。如圖1所示。圖1一個(gè)按鈕組件應(yīng)用程序2.編寫應(yīng)用程序,實(shí)現(xiàn)下面輸出的圖形效果,要求在創(chuàng)建2個(gè)Panel面板類對(duì)象pleft、pright,將左邊的4個(gè)標(biāo)簽放在面板pleft中,布局方式為GridLayout(4x1),需要設(shè)置水平、垂直間距;再將右邊的其它組件放在另一個(gè)面板pright中,布局方式也為GridLayout(4x1);最后,將pleft、pright添加到窗體中,布局方式為FlowLayout。如圖2所示。圖2一個(gè)組件類綜合應(yīng)用程序3.編寫一個(gè)簡單的文本編輯器程序,運(yùn)行后的效果如圖3所示。要求熟練掌握包括菜單條MenuBar、菜單Menu、菜單項(xiàng)MenuItem、菜單快捷鍵MenuShortcut對(duì)象的創(chuàng)建和使用的方法,懂得如何設(shè)計(jì)窗體菜單。圖3一個(gè)簡單的文本編輯器程序4.編寫繼承自JFrame類的窗口應(yīng)用程序,界面效果如圖4所示。創(chuàng)建5個(gè)按鈕(JLabel)。

采用網(wǎng)格型(GridLayout)布局(注:網(wǎng)格型布局管理器將成員按網(wǎng)格型排列,每個(gè)成員盡可能地占據(jù)網(wǎng)格的空間,每個(gè)網(wǎng)格也同樣盡可能地占據(jù)空間,從而各個(gè)成員按一定的大小比例放置)。圖4一個(gè)網(wǎng)格型布局管理器程序5.參照書本10.4.6JTable類小節(jié)中,JtableExample.java源程序案例,編寫以DataGrid形式顯示數(shù)據(jù)庫查詢結(jié)果和相關(guān)JTable操作程序。為能夠得到正確結(jié)果,請(qǐng)?jiān)诋?dāng)前目錄下建立數(shù)據(jù)庫student.mdb。程序運(yùn)行效果如圖5所示。圖5DataGrid和JTable應(yīng)用程序6.使用JTree類進(jìn)行widnows界面設(shè)計(jì)編程,程序運(yùn)行效果如圖6所示。這里可以使用構(gòu)造函數(shù)來輸入想要的節(jié)點(diǎn)數(shù)據(jù),即以Hashtable當(dāng)作JTree的數(shù)據(jù)輸入。圖6JTree類應(yīng)用程序習(xí)題一、選擇題1.Java中監(jiān)聽事件和處理事件()。A.都由Listener完成B.都由在相應(yīng)事件Listener處登記過的組件完成C.由Listener和組件分別完成D.由Listener和窗口分別完成2.在下列事件處理機(jī)制中哪個(gè)不是機(jī)制中的角色()。A.事件B.事件源C.事件接口D.事件處理者3.addActionListener()方法中的this參數(shù)表示的意思是()。A.當(dāng)有事件發(fā)生時(shí),應(yīng)該使用this監(jiān)聽器B.this對(duì)象類會(huì)處理此事件C.this事件優(yōu)先于其他事件D.以上均正確4.要判斷關(guān)閉窗口的事件,應(yīng)該添加的監(jiān)聽器是()。A.鼠標(biāo)監(jiān)聽器B.鼠標(biāo)移動(dòng)監(jiān)聽器C.窗口監(jiān)聽器D.以上監(jiān)聽器均可5.以下哪個(gè)是正確的事件處理方法()。A.mousePressed(MouseEvente){}B.MousePressed(MouseClicke){}C.functionKey(KeyPressk){}D.componentAdded(ContainerEvente){}6.關(guān)于Java的事件處理以下那條為真?()A.一個(gè)類可以實(shí)現(xiàn)多個(gè)監(jiān)聽者接口;B.如果一個(gè)類實(shí)現(xiàn)一個(gè)監(jiān)聽者接口,它只要覆蓋其用到的方法;C.MouseMotionAdapter類的所有方法返回類型均為void;D.以上均為真。二、填空題1.事件委托模型中,要讓事件偵聽器能夠處理相應(yīng)事件,必須向__________注冊(cè),并實(shí)現(xiàn)相應(yīng)偵聽接口的所有方法。2.Java的事件處理模型是授權(quán)事件模型,即一個(gè)________________產(chǎn)生一個(gè)事件(event)并把它送到一個(gè)或多個(gè)的監(jiān)聽器(listener)那里。3.Java中,當(dāng)按鈕獲得監(jiān)視器后,單擊按鈕,就發(fā)生_____________________事件。4.當(dāng)釋放鼠標(biāo)按鍵時(shí),將產(chǎn)生________________事件。5.Java為那些聲明了多個(gè)方法的Listener接口提供了一個(gè)對(duì)應(yīng)的_________,在該類中實(shí)現(xiàn)了對(duì)應(yīng)接口的所有方法。6.Java將所有組件可能發(fā)生的事件進(jìn)行分類,具有共同特征的事件被抽象為一個(gè)_________。7.圖形用戶界面通過_________響應(yīng)用戶和程序的交互,產(chǎn)生事件的組件稱為_________。三、思考題1.簡述Java的事件處理模型。2.簡述Java中的事件處理機(jī)制。3.事件處理程序需要包括哪三個(gè)部分?4.簡述按鈕按鍵事件的注冊(cè)、監(jiān)聽和事件處理過程。5.簡述按鈕鼠標(biāo)事件的注冊(cè)、監(jiān)聽和事件處理過程。6.簡述按鈕鍵盤事件的注冊(cè)、監(jiān)聽和事件處理過程。四、編程題1.編寫動(dòng)作事件處理應(yīng)用程序,實(shí)現(xiàn)單擊按鍵時(shí)分別改變窗體背景色的功能。創(chuàng)建1個(gè)窗口,1個(gè)面板對(duì)象,實(shí)現(xiàn)動(dòng)作偵聽接口ActionListener操作;創(chuàng)建3個(gè)按鍵組件,作為事件源分別向按鈕注冊(cè)監(jiān)聽者對(duì)象。編寫接口方法actionPerformed(ActionEvente)代碼實(shí)現(xiàn)上述功能,運(yùn)行效果如圖1所示。圖1一個(gè)按鍵事件處理程序2.編寫一個(gè)窗口事件處理程序,關(guān)閉窗口時(shí)彈出對(duì)話框(Dialog)確認(rèn)窗口,按下‘否’時(shí),窗口保留,按下‘是’時(shí),退出窗口。運(yùn)行界面如圖2所示。實(shí)現(xiàn)窗口偵聽接口WindowListener,改寫windowClosing(WindowEvente)等接口方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論