Java語言程序設計二級考試上機指導擴充版_第1頁
Java語言程序設計二級考試上機指導擴充版_第2頁
Java語言程序設計二級考試上機指導擴充版_第3頁
Java語言程序設計二級考試上機指導擴充版_第4頁
Java語言程序設計二級考試上機指導擴充版_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)Java語言程序設計二級上機考試指導Java語言程序設計上機考試主要是考核考生閱讀程序、分析程序及親自動手調(diào)試程序的能力,要求考生能夠采用面向?qū)ο蠹夹g編寫應用程序,在J2SDK環(huán)境下,熟練調(diào)試Java語言程序。上機考試時間和題型上機考試時間為90分鐘,滿分100分。上機考試題型主要有改錯題和填空題。改錯題主要是考核考生閱讀應用程序的能力。題型通常是要求考生按照題目要求將程序中的錯誤改正過來,使之輸出正確的運行結(jié)果。填空題主要是考核考生編寫應用程序的能力。題型通常是要求考生按照題目要求將程序補充完整,并調(diào)試程序使之輸出正確的運行結(jié)果;或說明程序要實現(xiàn)的功能,相關方法內(nèi)容空缺,讓考生填上,調(diào)試通過并輸出正確的運行結(jié)果。使用J2SDK編寫和調(diào)試Java程序Java語言程序開發(fā)平臺可用J2DSK,它是由SUN公司開發(fā)的一整套用于Java程序設計的平臺工具。J2SDK中包含有Java編譯器、Java解釋器、Java小程序查看器等。一般使用J2sdk1.4.2版本,近年來Java語言版本的更新也比較快,1.5以上的版本也不斷推出。而ITAT上機考試則要求使用Eclipse3.3或MyEclipse7.0相關的集成環(huán)境。要參加ITAT考試的考生考試前需要注意熟悉Eclipse3.3或MyEclipse7.0相關的集成環(huán)境。Java有兩類應用程序,基于命令提示符的JavaApplication程序和基于瀏覽器的JavaApplet程序。前者是基于命令行提示符環(huán)境下的獨立程序,后者是嵌入HTML文件在瀏覽器中解釋執(zhí)行的非獨立程序。下面將對它們分別進行歸納總結(jié)。JavaApplication程序的編寫和運行可以分為三個步驟。編寫源代碼首先要選擇一個無格式的文本編輯器,如Windows的記事本、UtraEdit等。其次,要創(chuàng)建一個文件夾,用編輯器錄入編寫好的Java源程序,然后將錄入的Java源程序存入該文件夾,其文件后綴應是.java。編譯源代碼在安裝好J2SDK系統(tǒng)后,還要對環(huán)境進行配置,關于具體配置請參閱《Java語言程序設計實訓》(二版)的實驗部分的實驗2。如果在考試中總是出現(xiàn)““Javac”不是內(nèi)部和外部命令,也不是可運行程序和批處理文件?!被颉癊rror:cannotread:XXXXXX.java1error”。也可以在查找到Java安裝文件夾后進行如下設置:假設Java安裝文件路徑是D:\jdk1.6.0。在命令提示符環(huán)境下,在D盤根目錄下創(chuàng)建一個文件夾Java或指定的文件夾。D:\>cdJavaD:Java\>pathD:\jdk1.6.0\binD:Java\>setclasspath=.在調(diào)試程序時一定要將源程序存入D盤的Java文件夾中。若是考試對文件夾有要求,就將用所以求的文件夾替代Java文件夾名。例如。在Java文件夾中有編輯好的Example1.java源程序文件,對其編譯。D:\Java>javacExample1.java如果命令提示符下沒有錯誤提示信息,系統(tǒng)將迅速回到“D:\Java>”狀態(tài)下,表明程序編譯已經(jīng)通過,在“D:\Java>”文件夾下將出現(xiàn)一個“Example1.class”文件。如果有錯誤信息出現(xiàn),要注意查看前面的錯誤,將其改正,再一次對其進行編譯,如此反復,直到程序編譯通過為止。注意:若是在編譯時出現(xiàn)許多的錯誤,此時要冷靜不要急躁,要按照上述要求從第一個錯誤改起,一步一步進行,一般都會得到解決。解釋執(zhí)行編譯通過也只能說完成程序調(diào)試的一半,還要解釋執(zhí)行、分析結(jié)果是否正確。對于上述Exampl.java程序鍵入如下命令行:D:\Java>javaExample1一般會有結(jié)果出現(xiàn),此時需要仔細分析輸出結(jié)果是否正確。如果運行結(jié)果正確,程序的調(diào)試工作也就結(jié)束了。注意:有時程序有輸出,但不是預期的結(jié)果。此時要仔細分析源程序的解題算法、流程控制是否與預期相悖,要逐步改進程序代碼,用可以預測的結(jié)果運行該程序,直到程序運行結(jié)果正確為止。JavaApplet程序的編寫和運行可以分為四個步驟。(1)編寫源程序本步與JavaApplication程序相同。編輯一個源代碼文件存入指定的文件夾中。注意:除了圖形界面的Application程序外,一般Applet程序不含main()方法。(2)編譯源程序本步與JavaApplication程序相同。(3)編寫HTML文件,一般用最簡單的HTML文件結(jié)構(gòu)即可。例如有“AppletExample.java”JavaApplet程序,其HTML文件可以為:<html><body><appletcode=AppletExample1.classwidth=350height=80></applet></body></html>以AppletExample1.html存盤即可。(4)解釋執(zhí)行對于JavaApplet程序的解釋執(zhí)行方法有三種。其一是用Java小程序查看器appletviewer解釋執(zhí)行。以上述JavaApplet程序為例,其命令行如下:D:\Java>appletviewerAppletExample1.html程序中無錯誤,將輸出正確的運行結(jié)果;如果有錯誤信息,按照JavaApplication程序那樣反復調(diào)試,直到調(diào)試通過,輸出結(jié)果正確為止。其二是用Web瀏覽器解釋執(zhí)行。用瀏覽器打開AppletExample1.html文件,其中嵌入的Applet程序?qū)⒈唤忉寛?zhí)行,若有錯誤,也要不斷改錯調(diào)試,直到調(diào)試通過,輸出結(jié)果正確為止。其三是直接雙擊html文件圖標。另外也可以使用appletviewer小程序查看器,而不用html文件,但是有如下要求:將html文件中的“<appletcode=AppletExample1.classwidth=350height=80></applet>”語句以“/*<appletcode=AppletExample1.classwidth=350height=80></applet>*/”形式放到Java源程序的包引入語句的后面。在運行該Applet小程序時用如下命令行:D:\Java>appletviewerAppletExample1.java上機考試的基本內(nèi)容Java語言程序設計設計考試的基本要求為:(1)掌握Java語言中面向?qū)ο蟪绦蛟O計的特性掌握面向?qū)ο蠓椒ㄊ且环N認知方法;面向?qū)ο蟪绦蛟O計語言的對象、消息、類、繼承和多態(tài)性;對象的屬性、對象的相互關系;面向?qū)ο蟪绦蛟O計語言的系統(tǒng)資源的可重用性、功能的可擴展性和系統(tǒng)的可管理性;面向?qū)ο笙到y(tǒng)的分析方法、面向?qū)ο笙到y(tǒng)的設計方法和面向?qū)ο笙到y(tǒng)的實現(xiàn)方法;J2SDK的的安裝、J2SDK的設置、開發(fā)與運行Java程序的步驟等。(2)數(shù)據(jù)類型、數(shù)組、運算符及其表達式變量的數(shù)據(jù)類型、變量的名稱和變量的作用域是變量的三大屬性。在一個變量被聲明時,常常是指明它的數(shù)據(jù)類型和名稱;而變量聲明所在的物理位置往往決定了變量的作用域。Java數(shù)據(jù)類型分為基本數(shù)據(jù)類型和復雜數(shù)據(jù)類型。基本數(shù)據(jù)類型可分為數(shù)值類型、字符類型(char)和布爾類型(boolean)。數(shù)值類型又分為整數(shù)類型(byte、short、int、long)和實數(shù)類型(float,double)。復雜數(shù)據(jù)類型可分為類類型(class)、數(shù)組和接口類型(interface)等。一維數(shù)組、多維數(shù)組、字符串和向量的聲明、創(chuàng)建、引用及其應用舉例。Java語言有多達40余個運算符,其使用也很靈活。表達式是操作數(shù)和運算符的結(jié)合體,它產(chǎn)生一個值。操作數(shù)在表達式中是被運算的對象,它可以是簡單變量,也可以是帶有下標表達式的下標變量,即數(shù)組元素。每個操作數(shù)所代表的值都具有一種數(shù)據(jù)類型,在運算的過程中,該類型可以一次性地轉(zhuǎn)換為另一種數(shù)據(jù)類型。(3)Java語言的基本語句掌握java語言的三種基本結(jié)構(gòu):Java語言的順序結(jié)構(gòu)語句、選擇結(jié)構(gòu)語句和循環(huán)結(jié)構(gòu)語句以及轉(zhuǎn)移控制語句。(4)Java語言的接口、異常處理及包接口是為了解決Java語言不支持多重繼承而設立的,通過接口可以實現(xiàn)多重繼承的需求。程序運行中出現(xiàn)錯誤是不可避免的,能夠處理運行中錯誤的程序才能穩(wěn)定地運行,異常處理就是用來處理程序運行中可能出現(xiàn)錯誤的技術方法。程序包是類和接口的集合。利用程序包可以把常用的類或功能相似的類放在一個程序包中。Java語言還提供了系統(tǒng)程序包,其中包含了大量的類,可以在編寫Java程序時直接引用它們。(5)Java語言的方法及基礎類庫的應用掌握Java的return語句,Java方法的定義、返值和調(diào)用,Java方法之間的數(shù)據(jù)傳遞,Java方法的嵌套調(diào)用和遞歸調(diào)用以及Java語言的命令行參數(shù)。掌握Object類,數(shù)據(jù)類型類,Math類、System類和Class類及其應用方法。(6)Java語言類的聲明、對象的實例化、繼承性和多態(tài)性掌握Java類的聲明、類的成員變量、類的成員方法、內(nèi)部類、匿名類和Java對象的實例化。面向?qū)ο笳Z言的繼承性、多態(tài)性以及在一個類的內(nèi)部,同名方法之間的關系;Java語言構(gòu)造方法的缺省、繼承與重載等問題。(7)Java語言的數(shù)據(jù)流及其對象序列化掌握Java數(shù)據(jù)流的輸入/輸出、Java輸入/輸出流類的層次結(jié)構(gòu)、流類的常用方法、常用流類應用舉例、File類、RandomAccessFile類及其舉例和對象序列化。(8)Java語言多線程的優(yōu)先級設置、多線程的具體實現(xiàn)掌握線程的基本概念,線程的生命期,Thread類創(chuàng)建線程、Runnable接口創(chuàng)建線程,線程的同步問題等。(9)Java語言的AWT組件及用戶圖形界面編程掌握Java語言的Frame框架、組件的布局管理、事件及其事件的處理、Java語言的其它容器、菜單和對話框等內(nèi)容。Java可視化編程中經(jīng)常使用的標簽、按鈕和滾動條,單選按鈕、復選框和選擇框,文本框、文本區(qū)和列表框,Swing按鈕和標簽,Swing邊界和滑動條,Swing單選按鈕、復選按鈕和列表框,GUI的文字輸出、顏色控制、繪制圖形、顯示圖像和畫布的應用等內(nèi)容。(10)Java語言的網(wǎng)絡編程及數(shù)據(jù)庫編程掌握、網(wǎng)絡通信協(xié)議介紹、URL類及其應用、URLConnection類及其應用、Socket接口、Datagram數(shù)據(jù)報以及如何編寫能在Internet環(huán)境上運行的Java應用程序和Applet程序的方法和技巧。JDBC接口、驅(qū)動程序及ODBC,DriverManager類、Connection類、Statement類、ResultSet類,結(jié)構(gòu)化查詢語言SQL的數(shù)據(jù)定義語句、數(shù)據(jù)操縱語句,創(chuàng)建數(shù)據(jù)源、連接Access數(shù)據(jù)庫、數(shù)據(jù)庫創(chuàng)建、插入、修改和刪除舉例,數(shù)據(jù)庫的順序查詢、單項查詢、排序查詢和模糊查詢等。(11)常見數(shù)據(jù)結(jié)構(gòu)的Java實現(xiàn)在ITAT考試中,要求了解Java集合架構(gòu)(JavaCollectionFramework),了解Collection接口、Map接口及其子接口,了解Set接口,學會使用HashSet和Treeset,了解List接口,學會使用ArrayList類、LinkedList類和Stack類,了解HashMap類和TreeMap類。學會使用Collection類和Arrays類中的靜態(tài)方法,還要求掌握用Java語言的一些類實現(xiàn)鏈表、棧、樹集、樹映射、散列集、散列表等應用。模擬題目(1)下面代碼判斷一年是否為閏年程序,改正程序中的錯誤,使之能夠輸出正確的結(jié)果。[判斷閏年的條件是:年份能夠被4整除,但不能被100整除;能夠被400整除]注意:不能改動程序結(jié)構(gòu),不得增加行也不能刪除行。importjava.io.*;publicclassOpExample01{publicstaticvoidmain(Stringargs[]){intyear=1989;if((year%4==0)||(year%100!=0)||(year%400==0))System.out.println(year+"是閏年。");elseSystem.out.println(year+"不是閏年。");year=2000;booleanleap;if(year%4==0)leap=false;elseif(year%100!=0)leap=true;elseif(year%400!=0)leap=false;elseleap=true;if(leap==true)System.out.println(year+"是閏年。");elseSystem.out.println(year+"不是閏年。");year=2050;if(year%4==0){if(year%100==0){if(year%400==0)leap=true;elseleap=false;}elseleap=false;}leap=false;if(leap==true)System.out.println(year+"是閏年。");elseSystem.out.println(year+"不是閏年。");}}(2)如下程序在編譯時出現(xiàn)錯誤,請改正程序中的錯誤,使之能通過編譯及運行。importjava.io.*;classSubClassextendsBaseClass{}classBaseClass{Stringstr;publicBaseClass(){System.out.println("Ok");}publicBaseClass(Stringstr){this.str=str;}}publicclassOpExample02{publicstaticvoidmain(Stringargs[]){SubClassa=newSubClass("Hello");BaseClassb=newBaseClass("world");}}(3)下面程序的功能是為變量賦值,程序運行后,輸出“i=34”。請改正main()方法中的錯誤,使程序運行時能輸出正確的結(jié)果。importjava.io.*;classA{privateinta;publicvoidsetA(intx){a=x;}publicintgetA(){returna;}}publicclassOpExample03{publicstaticvoidmain(Stringargs[]){Aa=A();a.getA(34);inti=a.getA();System.out.println("i="+i);}}(4)在當前文件夾中生成一個名為File1.txt的文件,在D盤生成一個名為myDir的文件夾,并在該文件夾中生成一個名為File2.txt的文件,最后輸出文件File2.txt的完整路徑。改正下列程序中的錯誤,使之能夠正確運行。importjava.io.*;publicclassOpExample04{publicstaticvoidmain(Stringargs[]){FiledirObj=newFile(d:\\myDir)FilefileObj1=newFile("d:\\myDir","File1.txt");FilefileObj2=newFile("d:/myDir","File2.txt");System.out.println(fileDirObj2);try{dirObj.mkdir();}catch(SecurityExceptione){}try{fileDirObj1.createNewFile();fileDirObj2.createNewFile();}catch(IOExceptione){}}}(5)分析兩個字符串,分別輸出每個字符串的單詞并統(tǒng)計出單詞的個數(shù)。閱讀程序代碼,填寫空行位置的Java語句,使之能夠正常編譯運行。importjava.util.*;publicclassOpExample05{publicstaticvoidmain(Stringargs[]){Strings1="IamChinese,sheismyyoungerbrother";Strings2="Hello,Really,verygood";StringTokenizerfenxi01=newStringTokenizer(s1,",");StringTokenizerfenxi02=newStringTokenizer(s2,",");intn1=fenxi01.countTokens();intn2=fenxi02.countTokens();while(fenxi01.hasMoreTokens()){Strings=fenxi01.nextToken();System.out.print(s+"");}System.out.println("\ns1有單詞"+n1+"個。");while(fenxi02.hasMoreTokens()){Strings=;System.out.print(s+"");}System.out.println("\ns2有單詞"+n2+"個。");}}(6)下面是一個Applet程序,其功能是接收用戶輸入的兩個整數(shù),比較它們的大小,并在用戶按下“比較”按鈕后,將Applet中顯示的“請先輸入兩個待比較的整數(shù)”改為“兩個整數(shù)中比較大的數(shù)值:x”,x是兩個數(shù)中的比較大的值。改正如下程序,使之能夠通過編譯并輸出正確的結(jié)果。importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;/*<appletcode=OpExample06.classwidth=280height=89></applet>*/publicclassOpExample06extendsAppletimplementsActionListener{Labelresult;TextFieldfile1,file2;Buttonbtn;inta=0,b=0,max;publicvoidinit()//初始化操作{result=newLabel("請先輸入兩個待比較的整數(shù)");file1=newTextField(6);file2=newTextField(6);btn=newButton("比較");add(file1);add(file2);add(btn);add(result);btn.addActionListener(this);}publicvoidactionPerformed(ActionEvente)//處理按鈕事件{a=file1;b=file2;if(a>b)max=a;elsemax=b;btn.setText("兩個數(shù)中比較大的值:"+max);}}(7)閱讀如下程序,寫出程序的運行結(jié)果。importjava.io.*;publicclassOpExample07{publicstaticvoidmain(Stringargs[]){Stringstr="Javaisgreat.";Stringstr1=str.toString();if(str==str1)System.out.println("stristhesameasstr1");elseSystem.out.println("strisnotthesameasstr1");//至此,程序的輸出為;if(str.equals(str1))System.out.println("strequalsstr1");elseSystem.out.println("stridoesnotequalsstr1");//至此,程序的輸出為;}}(8)下面程序是冒泡(從小到大)排序程序,請?zhí)顚懣招袃?nèi)容,使程序?qū)崿F(xiàn)其功能。importjava.io.*;publicclassOpExample08{publicstaticvoidmain(Stringargs[]){inti,j;intarr[]={3,-66,11,88,-3,999};intL=arr.length;for(i=0;i<L-1;i++)for(j=i+1;j<L;j++)if(){intt=arr[i];arr[i]=arr[j];arr[j]=t;}for(i=0;i<L;i++)System.out.print(arr[i]+"");}}(9)在下面的類中,有兩個下拉列表,一個顯示月份,一個顯示(2000~2010)年份,填寫空格,使程序正常運行,其用戶界面如下所示。importjavax.swing.*;publicclassOpExample09extendsJFrame{JComboBoxmonthBox=newJComboBox();;publicOpExample09(){super("組合框應用舉例");//將"組合框應用舉例"顯示在標題欄上setSize(350,70);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanelpane=newJPanel();JLabelexp=newJLabel("組合框應用舉例");for(inti=0;i<13;i++)monthBox.addItem(""+i);for(inti=2000;i<2010;i++)yearBox.addItem(""+i);pane.add(exp);pane.add(yearBox);;setContentPane(pane);}publicstaticvoidmain(Stringargs[]){OpExample09Exp=newOpExample09();Exp.setVisible(true);//將窗體顯示出來}}(10)下面是計算1/1+1/2+1/3+……1/100的程序,請?zhí)顚懣瞻滋帲钩绦蛲暾?。importjavax.swing.*;publicclassOpExample10{publicstaticvoidmain(Stringargs[]){doublesum=0.0;for(inti=1;i<101;i++);System.out.println("1/1+1/2+1/3+……1/100="+sum);}}(11)創(chuàng)建一個文本區(qū)和三個按鈕程序,該程序運行時,按下一個按鈕在文本區(qū)中顯示不同文字。請?zhí)顚懣招?,使程序達到上述要求。例如,單擊“英文”按鈕,顯示如下圖所示的英文字符串。importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjavax.swing.event.*;publicclassOpExample11extendsJFrameimplementsActionListener{privateintcount=0;JButtonb1=newJButton("英文");JButtonb2=newJButton("中文");JButtonb3=newJButton("標點");JTextAreamyText=newJTextArea(5,20);OpExample11(){setTitle("程序測試");addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});getContentPane().add(b1,BorderLayout.WEST);b1.addActionListener(this);getContentPane().add(b2,BorderLayout.NORTH);b2.addActionListener(this);getContentPane().add(b3,BorderLayout.SOUTH);b3.addActionListener(this);getContentPane().add(myText,BorderLayout.CENTER);}publicvoidactionPerformed(ActionEvente){;if(obj==b1)myText.append("YoutypetheEnglishbutton!");elseif(obj==b2)myText.append("你按下了中文按鈕!");elseif(obj==b3)myText.append(",。?!");}publicstaticvoidmain(Stringargs[]){JFramef=newOpExample11();f.setSize(240,120);f.setVisible(true);}}(12)編寫程序,完成對兩個數(shù),三個數(shù)和一個數(shù)組進行排序,補充程序完整,運行結(jié)果如下所示。importjava.io.*;publicclassOpExample12{publicstaticvoidmain(Stringargs[]){IntSorts=newIntSort();intx=300,y=120,z=400;intarr[]={34,56,23,98,45,312,-7};System.out.println("兩個數(shù)的排序結(jié)果是:"+s.sort(x,y));System.out.println("三個數(shù)的排序結(jié)果是:"+s.sort(x,y,z));System.out.println("數(shù)組元素的排序結(jié)果:"+s.sort(arr));}}classIntSort{publicStringsort(inta,intb){if(a>b)returna+","+b;elsereturnb+","+a;}publicStringsort(inta,intb,intc){intt;if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}returna+","+b+","+c;}publicStringsort(intarr[]){Strings="";intt;for(inti=0;i<arr.length;i++)for(intj=0;j<arr.length-1;j++);for(inti=0;i<arr.length;i++)s=s+arr[i]+",";returns;}}(13)下面程序運行時,在鼠標事件發(fā)生時,不斷在圖形界面上放大圓的半徑,填寫空格處完成所預期的功能,importjava.awt.*;importjava.awt.event.*;importjava.applet.*;/*<appletcode=OpExample13.classwidth=300height=260></applet>*/publicclassOpExample13extendsAppletimplementsMouseListener{TextFieldtext;intx;publicvoidinit(){x=5;text=newTextField(40);add(text);addMouseListener(this);}publicvoidpaint(Graphicsg){x=x+3;g.drawOval(158-x,158-x,x,x);}publicvoidmousePressed(MouseEvente){text.setText("鼠標按下的位置:"+e.getX()+","+e.getY());repaint();}publicvoidmouseReleased(MouseEvente){text.setText("鼠標松開的位置:"+e.getX()+","+e.getY());repaint();}publicvoidmouseEntered(MouseEvente){text.setText("鼠標進來的位置:"+e.getX()+","+e.getY());repaint();}publicvoidmouseExited(MouseEvente){text.setText("鼠標退出的位置:"+e.getX()+","+e.getY());}}(14)下面的程序中,指定變量b=50為字節(jié)型,f=0.3333fimportjava.io.*;publicclassOpExample14{publicstaticvoidmain(Stringargs[]){b=50;f=0.3333f;l=0xfffL;System.out.println("b="+b);System.out.println("f="+f);System.out.println("l="+l);}}(15)如下程序要求輸出結(jié)果為180,填寫空格處代碼,使其完成所要求的功能。classBase{inti;Base(){add(10);System.out.println("在Base中i="+i);}voidadd(intv){i+=v;}voidprint(){System.out.println(i);}}classExtensionextendsBase{Extension(){add();System.out.println("在Extension中i="+i);}voidadd(intv){i+=v*2;}}publicclassOpExample15{publicstaticvoidmain(String[]aegs){bogo(newExtension());}staticvoidbogo(Baseb){b.add(60);System.out.print("最后,i=");b.print();}}(16)通過實現(xiàn)Runnable接口創(chuàng)建線程,請在橫線處填寫合適的代碼,完成此程序。classOpExample16implementsRunnable{ThreadthrObj;publicstaticvoidmain(String[]aegs){System.out.println("這是通過實現(xiàn)Runnable接口實現(xiàn)線程的舉例。");OpExample16testObj=newOpExample16();testObj.create();}publicvoidcreate(){if(thrObj==null){thrObj=newThread(this,"myThread");}}publicvoidrun(){System.out.println("線程"+thrObj.getName()+"正在運行!");}}(17)請在空行處填寫合適的語句,改寫帶下劃線的語句,使程序運行的結(jié)果符合如下要求。本程序要求運行后的結(jié)果為:D:\java>javaOpExample174斤帶魚,每斤5.9元,計23.6元;3斤牛肉,每斤7.8元,計23.元;2斤雞蛋,每斤2.9元,計5.8元;總共您需付款52.8元。importjava.io.*;publicclassOpExample17{publicstaticvoidmain(Stringargs[])throwsIOException{FileOutputStreamfo=newFileOutputStream("data.txt");DataOutputStreamDo=newFileOutputStream(fo);floatprices[]={5.9f,7.8f,2.9f};intunits[]={4,3,2};Stringitems[]={"帶魚","牛肉","雞蛋"};for(inti=0;i<prices.length;i++){Do.writeFloat(prices[i]);Do.writeChar(',');Do.writeInt(units[i]);Do.writeChar(',');Do.writeChars(items[i]);Do.writeChar('\n');}Do.close();FileInputStreamfi=newFileInputStream("data.txt");DataInputStreamDi=newFileInputStream(fi);floatprice,total=0.0f,s;intunit;charch;Stringitem;try{while(true){price=Di.readFloat();Di.readChar();unit=Di.readInt();Di.readChar();s=price*unit;item=newString();while((ch=Di.readChar())!='\n')item+=ch;System.out.println(unit+"斤"+item+",每斤"+price+"元,計"+s+"元;");total+=unit*price;}}catch(EOFExceptione){}Di.close();fi.close();System.out.print("總共您需付款"+total+"元。");}}(18)在空行處填寫合適的代碼,使程序能夠正常運行且輸出為“male”。importjava.io.*;publicclassOpExample18{privateStringstuName;privateintstuAge;privateStringstuSex;publicvoidsetVar(){stuName=name;stuAge=age;stuSex=sex;}publicvoidupdateVar(Stringsex){stuSex=sex;}publicStringgetName(){returnstuName;}publicintgetAge(){returnstuAge;}publicStringgetSex(){returnstuSex;}publicstaticvoidmain(Stringargs[]){OpExample18a=;a.setVar("馬克",20,"female");System.out.println(a.getSex());}}(19)編寫兩個Java程序,AB.java和OpExample19.java,將AB.java放于test包中,在OpExample19.java放于另一個包中,并引用test包中的AB類。填寫空格程序完善,運行該程序輸出為“a=60”。AB.java源代碼為:publicclassAB{inta=60;publicvoidshow(){System.out.println("a="+a);}}OpExample19.java源代碼為:publicclassOpExample19{publicstaticvoidmain(Stringargs[]){ABobj=newAB();obj.show();}}(20)該程序創(chuàng)建一個List對象L,然后向L添加若干元素,寫出程序正常運行后的輸出結(jié)果為:importjava.util.*;publicclassOpExample20{publicstaticvoidmain(Stringargs[]){List<Object>L=newArrayList<Object>();L.add("Java");L.add("Language");L.add(newCharacter('類'));L.add(newInteger(99));L.add("Hello");System.out.println(L);}}(21)下面程序?qū)崿F(xiàn)對學生所選修課程進行添加,最后輸出學生所選課程,在空行處填寫適當成分,使程序能正確編譯及運行。interfaceCourse{intCOURSE_NUM=5;voidadd(Stringcourse);voidedit(inti,Stringcourse);}publicclassOpExample21//實現(xiàn)Course接口{String[]stuCourse=newString[COURSE_NUM];intNum=0;publicvoidadd(Stringcourse){if(Num<COURSE_NUM){stuCourse[Num]=course;Num++;}}publicvoidedit(inti,Stringcourse){if(i<=0&&i<COURSE_NUM)stuCourse[i]=course;}voidgetCourse(){for(inti=0;i<Num;i++)System.out.print(""+stuCourse[i]+",");}publicstaticvoidmain(Stringargs[]){OpExample21stu=newOpExample21();stu.add("C++");stu.add("Java");stu.add("VB");stu.getCourse();}}(22)下面程序使用迭代器進行兩次集合元素的訪問,寫出程序運行的正確結(jié)果。importjava.util.*;publicclassOpExample22{publicstaticvoidmain(Stringargs[]){Sets=newHashSet();//HashSets.add("Java");s.add("World");s.add(newCharacter('昭'));s.add(newInteger(22));s.add(newDouble(12.34));s.add(null);Iteratori=s.iterator();System.out.print("[");booleanfirst=true;while(i.hasNext()){System.out.print(i.next()+",");if(first){i.remove();first=false;}}System.out.println("]");i=s.iterator();System.out.print("{");while(i.hasNext())System.out.print(i.next()+",");System.out.println("}");}}(23)本程序可以獲取計算機內(nèi)存容量及Java習題可以訪問內(nèi)存的數(shù)量,在橫線處填寫適當成分,使程序正確運行。classOpExample23{publicstaticvoidmain(Stringargs[]){Runtimeruntime=Runtime.getRuntime();long=runtime.freeMemory()/1024;long=runtime.totalMemory()/1024;System.out.println("可用內(nèi)存空間為"+freeMemory+"KB");System.out.println("總的內(nèi)存空間為"+totalMemory+"KB");}}(24)根據(jù)程序的注釋在橫線處填寫適當成分,使程序正確運行。importjava..*;classOpExample24{publicstaticvoidmain(Stringargs[]){Randomr1=newRandom(L);Randomr2=newRandom(L);booleanb=r1.nextBoolean();inti1=r1.;//生成0~100的整型隨機數(shù)doubled1=r1.nextDouble();doubled2=r2.nextDouble();System.out.println("b="+b);System.out.println("i1="+i1);System.out.println("d1="+d1);System.out.println("d2="+d2);}}(25)根據(jù)程序注釋進行線程優(yōu)先級的設置,使程序正確運行。importjava.io.*;classOpExample25extendsThread{publicstaticvoidmain(Stringargs[]){OpExample25runner[]=newOpExample25[4];for(inti=0;i<4;i++)runner[i]=newOpExample25();for(inti=0;i<4;i++)runner[i].start();runner[1].;//設置為最低優(yōu)先級runner[3].;//設置為最高優(yōu)先級}publicvoidrun(){for(inti=0;i<;i++);System.out.println(getName()+"線程的優(yōu)先級是"+getPriority()+"執(zhí)行完畢!");}}(26)如下程序用線程動態(tài)顯示滾動字符串,在橫線處填入適當成分,使程序正常編譯、運行。importjava.awt.*;importjava.awt.event.*;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.applet.Applet;publicclassOpExample26extendsAppletimplementsRunnable{ ThreadrunThread; Strings="歡迎瀏覽Java語言網(wǎng)站!"; ints_length=s.length(); intx_character=0; FontwordFont=newFont("宋體",Font.BOLD,24); publicvoidstart(){ if(runThread==null){runThread=newThread(this); //啟動線程 }} publicvoidstop(){ if(runThread!=null){runThread.stop(); runThread=null; } } publicvoidrun(){ while(true){ if(x_character++>s_length) x_character=0; repaint();try{ Thread.sleep(300); }catch(InterruptedExceptione){} }}publicvoidpaint(Graphicsg){g.setFont(wordFont); g.setColor(Color.red); g.drawString(s.substring(0,x_character),x_character+10,35);}publicstaticvoidmain(Stringargs[]){ Framef=newFrame("文字動畫顯示程序"); OpExample26drawTest=newOpExample26(); drawTest.init(); drawTest.start(); f.add("Center",drawTest); f.resize(350,80);f.setVisible(true);f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente)//實現(xiàn)關閉窗體操作}}(27)下列程序的運行結(jié)果是。classBase{inti;Base(){add(1);System.out.println("在Base中i="+i);}voidadd(intv)//帶一個參數(shù)的構(gòu)造方法{i+=v;}voidprint(){System.out.println(i);}}classExtensionextendsBase{Extension(){add(3);System.out.println("在Extension中i="+i);}voidadd(intv){i+=v*3;}}publicclassOpExample27{publicstaticvoidmain(String[]aegs){bogo(newExtension());}staticvoidbogo(Baseb){b.add(3);System.out.print("最后,i=");b.print();}}(28)如下程序是多線程應用舉例,其中左線程畫圓,右線程畫方形,在橫線處填入合適的成分,使程序正常運行。importjava.applet.*;importjava.awt.*;/*<appletcode=OpExample28.classwidth=240height=120></applet>*/publicclassOpExample28extendsAppletimplementsRunnable{Threadleft,right;Graphicsmypen;intx,y;publicvoidinit(){left=newThread(this);//創(chuàng)建右線程x=10;y=10;mypen=getGraphics();}publicvoidstart(){try{//啟動左線程right.start();}catch(Exceptione){}}publicvoidrun(){while(true){if(Thread.currentThread()==left){x=x+1;if(x>240)x=10;mypen.setColor(Color.blue);mypen.clearRect(10,10,300,40);mypen.drawRect(10+x,10,40,40);try{left.sleep(60);}catch(InterruptedExceptione){}}elseif(Thread.currentThread()==right){y=y+1;if(y>240)y=10;mypen.setColor(Color.red);mypen.clearRect(10,90,300,40);mypen.drawOval(10+y,90,40,40);try{right.sleep(60);}catch(InterruptedExceptione){}} } }}(29)下列程序是網(wǎng)格布局應用舉例,如下圖所示,請在橫線處填寫適當成分,使程序正確運行。importjava.awt.*;importjava.awt.event.*;classWinGridextendsFrame{GridLayoutgrid;WinGrid(){super("網(wǎng)格布局舉例");grid=//設置網(wǎng)格布局模式setLayout(grid);Labellabel[][]=newLabel[12][12];for(inti=0;i<12;i++){for(intj=0;j<12;j++){label[i][j]=newLabel();if((i+j)%2==0)label[i][j].setBackground(Color.black);elselabel[i][j].setBackground(Color.white);add(label[i][j]);}}setBounds(10,10,260,260);setVisible(true);validate();}}publicclassOpExample29{publicstaticvoidmain(Stringargs[]){}//創(chuàng)建WinGrid對象}(30)下面是使用窗口適配器實現(xiàn)窗口激活和關閉事件的程序,在橫線處填入適當代碼使之正確運行。importjava.awt.*;importjava.awt.event.*;classMyFrameextendsFrame{TextAreatext;GbJhpolice;MyFrame(Strings){super(s);police=newGbJh(this);setBounds(100,100,200,80);setVisible(true);text=newTextArea();add(text,BorderLayout.CENTER);//注冊窗口事件validate();}}classGbJhextendsWindowAdapter{MyFramef;publicGbJh(MyFramef){this.f=f;}publicvoidwindowActivated(WindowEvente){f.text.append("\n我被激活");}//處理窗口關閉事件}publicclassOpExample30{publicstaticvoidmain(Stringargs[]){newMyFrame("窗口關閉、激活舉例");}}(31)下面程序是首先讓用戶輸入一個字符串,然后統(tǒng)計用戶輸入字符串各種字符的數(shù)量。在橫線處添加合適成分,使程序正確運行。importjavax.swing.*;publicclassOpExample31{publicstatic finalintLETTERNUMBER=26;publicstaticvoidmain(Stringargs[]){ //提示用戶輸入 Strings=JOptionPane.showInputDialog(null,"輸入一個字符串:" ,"示例輸入",JOptionPane.QUESTION_MESSAGE); int[]numberUpper=countUpper(s); int[]numberLower=countLower(s); //初始化字符串 Stringoutput=""; //輸出結(jié)果 for(inti=0;i<numberUpper.length;i++){ if(numberUpper[i]!=0)output+=(char)('A'+i)+"出現(xiàn)在"+numberUpper[i]+"次數(shù)\n"; } for(inti=0;i<numberLower.length;i++){ if(numberLower[i]!=0)output+=(char)('a'+i)+"出現(xiàn)"+numberLower[i]+"次數(shù)\n"; } JOptionPane.showMessageDialog(null,output,"示例輸出",JOptionPane.INFORMATION_MESSAGE);}publicstaticint[]countUpper(Strings){ int[]count=newint[LETTERNUMBER];//定義統(tǒng)計字符數(shù)組 for(inti=0;i<s.length();i++){ if(

溫馨提示

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

最新文檔

評論

0/150

提交評論