




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書成都信息工程學(xué)院計(jì)算機(jī)系2006目 錄 TOC o 1-1 h z u HYPERLINK l _Toc173257874 概 述 PAGEREF _Toc173257874 h - 1 - HYPERLINK l _Toc173257875 實(shí)驗(yàn)一 Java程序設(shè)計(jì)基礎(chǔ) PAGEREF _Toc173257875 h - 3 - HYPERLINK l _Toc173257876 實(shí)驗(yàn)二 Java語言基礎(chǔ) PAGEREF _Toc173257876 h - 15 - HYPERLINK l _Toc173257877 實(shí)驗(yàn)三 Java語言面向?qū)ο蠡A(chǔ) PA
2、GEREF _Toc173257877 h - 28 - HYPERLINK l _Toc173257878 實(shí)驗(yàn)四 異常處理和包裝類的編程練習(xí) PAGEREF _Toc173257878 h - 45 - HYPERLINK l _Toc173257879 實(shí)驗(yàn)五 Java語言的字符串類 PAGEREF _Toc173257879 h - 54 - HYPERLINK l _Toc173257880 實(shí)驗(yàn)六 多線程基礎(chǔ)編程 PAGEREF _Toc173257880 h - 55 - HYPERLINK l _Toc173257881 實(shí)驗(yàn)七 多線程并發(fā)編程 PAGEREF _Toc1732
3、57881 h - 56 - HYPERLINK l _Toc173257882 實(shí)驗(yàn)八 字符流和字符流輸入/輸出編程 PAGEREF _Toc173257882 h - 57 - HYPERLINK l _Toc173257883 實(shí)驗(yàn)九 集合、列表、映射類編程 PAGEREF _Toc173257883 h - 58 - PAGE - 102 -概 述上機(jī)實(shí)驗(yàn)的目的上機(jī)實(shí)驗(yàn)的目的是提高學(xué)生的分析問題、解決問題的能力和動(dòng)手能力,通過實(shí)踐環(huán)節(jié)理解Java語言的基本結(jié)構(gòu)和程序設(shè)計(jì)方法。通過親手編程掌握J(rèn)ava 語言編程的方法。實(shí)驗(yàn)基本內(nèi)容為了使學(xué)生在上機(jī)實(shí)驗(yàn)時(shí)目標(biāo)明確,本實(shí)驗(yàn)指導(dǎo)書針對(duì)課程內(nèi)容編
4、寫了9個(gè)實(shí)驗(yàn)。學(xué)生可以在課內(nèi)機(jī)時(shí)先完成指導(dǎo)書中給出的程序,理解所學(xué)的知識(shí),在此基礎(chǔ)上再編寫其他應(yīng)用程序。指導(dǎo)書中的9個(gè)實(shí)驗(yàn)如下。HYPERLINK l _Toc173254632Java程序設(shè)計(jì)基礎(chǔ)HYPERLINK l _Toc173254633Java語言基礎(chǔ)HYPERLINK l _Toc173254634Java語言面向?qū)ο蠡A(chǔ)HYPERLINK l _Toc173254635異常處理和包裝類的編程練習(xí)HYPERLINK l _Toc173254636Java語言的字符串類HYPERLINK l _Toc173254637多線程基礎(chǔ)編程HYPERLINK l _Toc173254638
5、多線程并發(fā)編程HYPERLINK l _Toc173254639字符流和字符流輸入/輸出編程HYPERLINK l _Toc173254640集合、列表、映射類編程實(shí)驗(yàn)任務(wù)與時(shí)間安排Java 編程技術(shù)是一門實(shí)踐性很強(qiáng)的課程,除了在課內(nèi)安排的實(shí)驗(yàn)外,鼓勵(lì)同學(xué)在課外使用相關(guān)技術(shù)進(jìn)行編程練習(xí)。Java 編程技術(shù)上機(jī)實(shí)驗(yàn)時(shí)間為18學(xué)時(shí),與教學(xué)內(nèi)容同時(shí)進(jìn)行上機(jī)實(shí)驗(yàn)。18個(gè)上機(jī)學(xué)時(shí)分為9個(gè)實(shí)驗(yàn)。實(shí)驗(yàn)設(shè)備要求Java的開發(fā)和運(yùn)行環(huán)境對(duì)機(jī)器的配置要求較高。下面給出的是實(shí)驗(yàn)用機(jī)的軟件和硬件基本配置。軟件配置:Windows 2000 Professional、IE5.5以上硬件配置:CPU P4 2.0G以上、
6、內(nèi)存 512MB以上實(shí)驗(yàn)一 Java程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)構(gòu)建Java語言開發(fā)和運(yùn)行環(huán)境學(xué)習(xí)使用EditPlus編寫Java源程序?qū)W習(xí)使用javac命令編譯源程序?qū)W習(xí)使用java命令運(yùn)行程序初步了解使用Java語言進(jìn)行程序設(shè)計(jì)的基本步驟為進(jìn)行后續(xù)實(shí)驗(yàn)做好準(zhǔn)備實(shí)驗(yàn)要求下載、安裝Java軟件開發(fā)工具包(JSDK);設(shè)置相關(guān)環(huán)境變量;使用EditPlus編寫一個(gè)簡單的Java程序;使用javac命令編譯源程序;使用java命令運(yùn)行程序,觀察運(yùn)行結(jié)果。實(shí)驗(yàn)內(nèi)容Java軟件開發(fā)工具包(JSDK)的下載與安裝下載SDK為了建立基于SDK 的Java 運(yùn)行環(huán)境,需要先下載Sun 的免費(fèi)SDK 軟件包。SD
7、K 包含了一整套開發(fā)工具,其中包含對(duì)編程最有用的是Java 編譯器、Applet 查看器和Java 解釋器。在瀏覽器中輸入/,可看到圖1.1 所示的Sun 公司網(wǎng)站頁面。圖 1.1在頁面右邊“Popular Downloads”欄中可看到最新版的SDK 軟件包(早期版本稱為JDK),這里顯示的是“J2SE 5.0”(當(dāng)前最新版)。單擊“J2SE 5.0”超鏈接,可看到圖1.2 所示頁面。圖 1.2在頁面的“Download JDK 5.0 Update 6”欄可以選擇下載 最新的J2SE 5.0 SDK 軟件包。有兩種選擇:一種是在線安裝“Windows Installation”;一種是離線
8、安裝“Windows Offline Installation”。單擊頁面中“SDK”列對(duì)應(yīng)的“DOWNLOAD”超鏈接,可看到圖1.3 所示的下載協(xié)議說明書。圖 1.3單擊“ACCEPT”按鈕,同意Sun 公司的協(xié)議,可進(jìn)入到圖1.4 所示的下載頁面,單擊“Windows Offline Installation, Multi-language”超鏈接,開始下載工作,下載的安裝文件保存為“jdk-1_5_0_06-windows-i586-p.exe”。圖 1.4安裝SDK運(yùn)行“jdk-1_5_0_06-windows-i586-p.exe”軟件包,可安裝SDK,在安裝過程中可以設(shè)置安裝路徑
9、及選擇組件,默認(rèn)的安裝路徑為“C:Program FilesJavajdk1.5.0_06”,這里將安裝目錄指定為“D:jdkjdk1.5.0_06”,默認(rèn)的組件選擇是全部安裝。SDK安裝目錄中的Java命令安裝成功后,D:jdkjdk1.5.0_06 中的文件和子目錄結(jié)構(gòu)如圖1.5 所示。圖 1.5其中,“bin”文件夾中包含編譯器(javac.exe)、解釋器(javac.exe)、Applet 查看器(appletviewer.exe)等Java命令的可執(zhí)行文件,如圖1.6 所示。“demo”文件夾中包含一些源代碼的程序示例。圖 1.6環(huán)境變量的設(shè)置SDK 中的工具都是命令行工具,需要在
10、命令行窗口從命令行提示符下運(yùn)行它們。很多人可能會(huì)不習(xí)慣,但這是Sun 特意采取的策略,為的是把精力更多地投入到Java 語言本身而不是花在開發(fā)工具上。為了能正確方便的使用SDK,可手工配置一些Windows 的環(huán)境變量。以Windows 2000 為例說明設(shè)置過程。在桌面“我的電腦”圖標(biāo)上單擊右鍵,選擇“屬性”菜單,將出現(xiàn)系統(tǒng)特性設(shè)置界面,如圖1.7 所示。圖 1.7在“高級(jí)”選項(xiàng)卡中單擊“環(huán)境變量”按鈕。將出現(xiàn)“環(huán)境變量”設(shè)置界面,如圖1.8 所示。圖 1.8在“系統(tǒng)變量”框中選擇“Path”,然后單擊“編輯”按鈕,在出現(xiàn)的“編輯系統(tǒng)變量”對(duì)話框中,在“變量值”欄的命令前添加“D:jdkjd
11、k1.5.0_06bin;”命令,如圖1.9 所示。圖 1.9用同樣方法設(shè)置環(huán)境變量“classpath”,其值為“D:jdkjdk1.5.0_06lib;”命令。設(shè)置完成后,單擊“開始”“運(yùn)行”,在對(duì)話框中輸入“cmd”,點(diǎn)擊“確定”或鍵盤回車鍵后打開命令行窗口。在命令提示符下輸入“java”或“javac”,回車后,如果出現(xiàn)其用法參數(shù)提示信息,則安裝正確,如圖1.10所示。圖 1.10為了在打開命令行窗口時(shí)可以直接進(jìn)入包含你開發(fā)的java程序的路徑下,下面以Windows 2000為例說明設(shè)置過程。(1)首先建立一個(gè)存放java 源程序的路徑和文件夾,如將實(shí)驗(yàn)中建立的java 源程序都存放
12、在為“d:javaprog”文件夾中。(2)單擊“開始”“所有程序”“附件”“命令提示符”,選擇“命令提示符”選項(xiàng)右擊,在出現(xiàn)的下拉菜單中選擇“屬性”菜單,將打開“命令提示符 屬性”對(duì)話框,如圖1.11 所示。圖 1.11(3)在“命令提示符 屬性”對(duì)話框中選擇“快捷方式”選項(xiàng),在“起始位置”欄輸入“d:javaprog”,單擊“確定”按鈕。進(jìn)行了上面的設(shè)置后,打開命令行窗口時(shí)將直接進(jìn)入“e:javaprog”路徑下。如果沒有進(jìn)行上述設(shè)置,可使用DOS 命令,直接輸入“d:”按回車進(jìn)入到d 盤,再輸入“cd java”到d 盤的java 子目錄下,再輸入“cd prog”即可到“e:javap
13、rog”路徑下。使用EditPlus編寫源程序要編寫Java 程序,需要有文本編輯器??梢允褂貌僮飨到y(tǒng)提供的Edit 或記事本作為編輯器,最好選擇EditPlus 編輯軟件,它可以使用不同顏色顯示Java 的關(guān)鍵字和類名,簡單好用,同時(shí)可以對(duì)程序進(jìn)行編譯和運(yùn)行。EditPlus為共享軟件,在教育網(wǎng)各個(gè)軟件下載網(wǎng)站都有下載。下載安裝EditPlus軟件后打開EditPlus 編輯軟件,如圖1.17 所示,在其右邊文本區(qū)輸入如下代碼。public class HelloJava public static void main(String args) System.out.println(Hell
14、o Java!);圖1.17將文件命名為HelloJava.java,保存為文本文件格式文件,注意保存文件的路徑。根據(jù)前面環(huán)境變量的設(shè)置,HelloJava.java 應(yīng)該保存在“e:javaprog”的路徑下。使用javac命令編譯源程序Java 源程序編寫后,要使用Java 編譯器(javac.exe)進(jìn)行編譯,將Java 源程序編譯成可執(zhí)行的程序代碼。Java 源程序都是擴(kuò)展名為 .java 的文本文件。編譯時(shí)首先讀入Java 源程序,然后進(jìn)行語法檢查,如果出現(xiàn)問題就終止編譯。語法檢查通過后,生成可執(zhí)行程序代碼即字節(jié)碼,字節(jié)碼文件名和源文件名相同,擴(kuò)展名為 .class。可按照以下步驟操
15、作:(1) 打開命令提示符窗口進(jìn)入Java 源程序所在路徑。(2) 鍵入“javac HelloJava.java”,如圖1.18 所示。圖 1.8(3) 按回車鍵開始編譯(注意:文件名大小寫敏感)。如果源程序沒有錯(cuò)誤,則屏幕上沒有輸出,鍵入 “dir”按回車鍵后可在目錄中看到生成了一個(gè)同名字的.class 文件“Hello. class” ,如圖1.18 所示。否則,將顯示出錯(cuò)信息。使用java命令運(yùn)行程序使用Java 解釋器(java.exe)可將編譯后的字節(jié)碼文件HelloJava.class 解釋執(zhí)行。在命令提示符窗口鍵入“java HelloJava”,按回車鍵即開始解釋并可看到運(yùn)行
16、結(jié)果,如果看到如圖1.19 所示結(jié)果,表明程序運(yùn)行成功了,這是一種字符方式的應(yīng)用程序其結(jié)果顯示在屏幕。圖 1.19在EditPlus中編譯和運(yùn)行程序EditPlus中可以設(shè)置在后臺(tái)運(yùn)行javac.exe和java.exe或其它外部可執(zhí)行程序,同時(shí)可以指定當(dāng)前編輯的文件或其它內(nèi)容作為外部程序的執(zhí)行參數(shù),并將外部程序運(yùn)行的結(jié)果顯示在消息欄中,這可簡化對(duì)Java程序編譯和執(zhí)行的操作,提高編程效率。打開EditPlus ,單擊“工具”“配置用戶工具”菜單,如圖1.22 所示。圖 1.22在打開的“參數(shù)設(shè)置”窗口如圖1.23、圖1.24 所示配置編譯與運(yùn)行環(huán)境。設(shè)置“編譯”工具單擊“組名稱”按鈕確定工具
17、組的名稱。單擊“添加工具”按鈕,從彈出的快捷菜單中選擇“程序文件”命令。在“菜單文字”欄中輸入“編譯”文字;在“命令”欄中輸入或通過文件夾選擇javac.exe文件的路徑;在“參數(shù)”欄選擇“文件名稱”;在“初始目錄”欄輸入Java 程序所在的路徑。設(shè)置“運(yùn)行”工具與(a)同樣的方法可以設(shè)置“運(yùn)行”工具。請(qǐng)同學(xué)自己練習(xí)。圖 1.23圖 1.24編譯與運(yùn)行設(shè)置工具后,在“工具”菜單下的下拉菜單中就可以對(duì)Java 程序進(jìn)行編譯與運(yùn)行操作了。單擊“工具”“編譯”菜單,如圖1.25 所示。就開始對(duì)選中的程序進(jìn)行編譯處理。該過程要等一會(huì)兒。圖 1.25編譯通過后,可在右下方窗口看到編譯結(jié)果,如圖1.26
18、所示。如果程序有問題,會(huì)看到提示。圖 1.26編譯成功后,可運(yùn)行該程序。單擊“工具”“運(yùn)行”菜單,如圖1.27 所示。圖 1.27運(yùn)行成功后,可在右下方窗口看到程序的運(yùn)行結(jié)果,如圖1.28 所示。圖 1.28實(shí)驗(yàn)二 Java語言基礎(chǔ)實(shí)驗(yàn)?zāi)康牧私釰ava 的數(shù)據(jù)類型;掌握各種變量的聲明方式;理解運(yùn)算符的優(yōu)先級(jí);掌握J(rèn)ava 基本數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、數(shù)組的使用方法;理解Java 程序語法結(jié)構(gòu),掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)語法的程序設(shè)計(jì)方法;通過以上內(nèi)容,掌握J(rèn)ava 語言的編程規(guī)則。實(shí)驗(yàn)要求編寫一個(gè)聲明Java 不同數(shù)據(jù)類型變量的程序;編寫一個(gè)使用運(yùn)算符、表達(dá)式、變量的程序;編寫一個(gè)使用
19、Java 數(shù)組的的程序;編寫表達(dá)式語句、復(fù)合語句的程序;編寫使用不同選擇結(jié)構(gòu)的程序;編寫使用不同循環(huán)結(jié)構(gòu)結(jié)構(gòu)的程序。實(shí)驗(yàn)內(nèi)容聲明不同數(shù)據(jù)類型的變量編寫聲明不同數(shù)據(jù)類型變量的程序文件LX2_1.java,源代碼如下。public class EXP2_1 public static void main(String args) byte b=0 x55;short s=0 x55ff;int i=1000000;long l=0 xffffL;char c=a;float f=0.23F;double d=0.7E-3;boolean B=true;String S=這是字符串類數(shù)據(jù)類型;Sys
20、tem.out.println(字節(jié)型變量 b = +b);System.out.println(短整型變量 s = +s);System.out.println( 整型變量 i = +i);System.out.println(長整型變量 l = +l);System.out.println(字符型變量 c = +c);System.out.println(浮點(diǎn)型變量 f = +f);System.out.println(雙精度變量 d = +d);System.out.println(布爾型變量 B = +B);System.out.println(字符串類對(duì)象 S = +S);編譯并運(yùn)行
21、該程序,結(jié)果如圖2.1 所示。圖 2.1了解變量的使用范圍建立EXP2_2.java 文件,通過本程序了解變量的使用范圍,源代碼如下。public class EXP2_2 static int i=10;public static void main(String args) int k=10;System.out.println(i=+i);System.out.println(k=+k);System.out.println(i=+i);System.out.println(k=+k);/編譯時(shí)將出錯(cuò),已出k的使用范圍編譯EXP2_2.java此時(shí)會(huì)出現(xiàn)錯(cuò)誤提示如圖2.2 所示。因?yàn)樽兞?/p>
22、k 在方法塊中聲明,在方法塊之外它是不存在的,所以編譯時(shí)會(huì)出錯(cuò)。圖 2.2修改上面的程序成功運(yùn)行該程序思考:EXP2_2.java 程序說明了什么問題?使用關(guān)系運(yùn)算符和邏輯運(yùn)算符建立使用關(guān)系運(yùn)算符和邏輯運(yùn)算符的程序文件,源代碼如下。class EXP2_3 public static void main(String args) int a=25, b=20, e=3, f=0;boolean d=ab;System.out.println(a=25,b=20,e=3,f=0);System.out.println(因?yàn)殛P(guān)系表達(dá)式 a5)System.out.println(因?yàn)閑 非0 且a
23、/e 為8 大于5,所以輸出 a/e +a/e);if (f!=0 & a/f5)System.out.println(a/f = +a/f);elseSystem.out.println(因?yàn)閒 值為0,所以輸出 f = +f);編譯并運(yùn)行該程序,結(jié)果如圖2.3 所示。圖 2.3使用數(shù)組建立使用數(shù)組的程序,本程序建立了一個(gè)長度為5 的1 維數(shù)組,一個(gè)長度為12 的2 維數(shù)組,源代碼如下。public class EXP2_4 public static void main(String args) int a=new int5;int arr1=new int34;a0=10;a1=10+a
24、0;a2=30;a3=40;a4= a1+ a2;arr100=0; arr101=1; arr102=2;arr110=3; arr111=4; arr112=5;arr120=6; arr121=7; arr122=8;System.out.println(a+0+ = +a0);System.out.println(a+1+ = +a1);System.out.println(a+2+ = +a2);System.out.println(a+3+ = +a3);System.out.println(a+4+ = +a4);System.out.println(arr1(+0+,+0+)
25、= +arr100);System.out.println(arr1(+0+,+1+) = +arr101);System.out.println(arr1(+0+,+2+) = +arr102);System.out.println(arr1(+1+,+0+) = +arr110);System.out.println(arr1(+1+,+1+) = +arr111);System.out.println(arr1(+1+,+2+) = +arr112);編譯并運(yùn)行程序,結(jié)果如圖2.4 所示。圖 2.4使用表達(dá)式語句與復(fù)合語句建立包含表達(dá)式語句程序,源代碼如下。class EXP2_5pub
26、lic static void main(String args) int k, i=3, j=4;k=20*8/4+i+j*i;System.out.println(表達(dá)式(20*8/4+i+j*i)+k);建立包含復(fù)合語句程序,源代碼如下。class EXP2_6public static void main(String args) int k, i=3, j=4;k=i+j;System.out.println(在復(fù)合塊外的輸出 k=+k);float f;f=j+4.5F;i+;System.out.println(在復(fù)合塊內(nèi)的輸出 f=+f);System.out.println(
27、在復(fù)合塊內(nèi)的輸出 k=+k);System.out.println(在復(fù)合塊外的輸出 i=+i);編譯并運(yùn)行上述兩個(gè)源程序,結(jié)果如圖2.5、2.6 所示。將變量i 在塊內(nèi)定義會(huì)怎樣?改變其他變量的位置看看會(huì)發(fā)生什么變化。思考:指出程序的復(fù)合結(jié)構(gòu)以及變量的使用范圍。圖 2.5圖 2.6使用選擇語句 使用if.else 語句程序功能:使用if.else 語句構(gòu)造多分支,判斷某一年是否為閏年。閏年的條件是符合下面二者之一:能被4 整除,但不能被100 整除;能被4 整除,又能被100 整除。編寫源程序文件,代碼如下。public class EXP2_7 public static void mai
28、n(String args) boolean leap;int year=2005;if (year%4=0 & year%100!=0) | (year%400=0) / 方法1System.out.println(year+ 年是閏年);elseSystem.out.println(year+ 年不是閏年);year=2008; / 方法2if (year%4!=0)leap=false;else if (year%100!=0)leap=true;else if (year%400!=0)leap=false;elseleap=true;if (leap=true)System.out.
29、println(year+ 年是閏年);elseSystem.out.println(year+ 年不是閏年);year=2050; / 方法3if (year%4=0) if (year%100=0) if (year%400=0)leap=true;elseleap=false;elseleap=false;elseleap=false;if (leap=true)System.out.println(year+ 年是閏年);elseSystem.out.println(year+ 年不是閏年);編譯運(yùn)行程序,其結(jié)果如圖2.7 所示。圖 2.7思考:本程序中有幾個(gè)選擇語句,哪些具有嵌套關(guān)系
30、?使用switch 語句 程序功能:在不同溫度時(shí)顯示不同的解釋說明。 程序源代碼如下。class EXP2_8public static void main(String args) int c=38;switch (c10?1:c25?2:c35?3:4) case 1:System.out.println( +c+ 有點(diǎn)冷。要多穿衣服。);case 2:System.out.println( +c+ 正合適。出去玩吧。);case 3:System.out.println( +c+ 有點(diǎn)熱。);default:System.out.println( +c+ 太熱了!開空調(diào)。);編譯運(yùn)行程序
31、,其結(jié)果如圖2.8 所示。圖 2.8使用循環(huán)語句for 循環(huán)語句練習(xí)程序功能:按5 度的增量打印出一個(gè)從攝氏溫度到華氏溫度的轉(zhuǎn)換表。程序源代碼如下。class EXP2_9public static void main (String args) int h,c;System.out.println(攝氏溫度華氏溫度);for (c=0; c=40; c+=5) h=c*9/5+32;System.out.println(+c+h);編譯并運(yùn)行程序,其結(jié)果如圖2.9 所示。圖 2.9while 循環(huán)語句練習(xí)程序功能:運(yùn)行程序后從鍵盤輸入數(shù)字1/2/3 后,可顯示抽獎(jiǎng)得到的獎(jiǎng)品;如果輸入其它數(shù)字
32、或字符顯示“沒有獎(jiǎng)品給你!”。程序源代碼如下。import java.io.*;class EXP2_10 public static void main(String args) throws IOException char ch;System.out.println(按 1/2/3 數(shù)字鍵可得大獎(jiǎng)!);System.out.println(按Q鍵可退出循環(huán)操作.);while (ch=(char)System.in.read()!= ) System.in.skip(2); / 跳過回車鍵switch (ch) case 1:System.out.println(恭喜你得大獎(jiǎng),一輛汽車!
33、);break;case 2:System.out.println(不錯(cuò)呀,你得到一臺(tái)筆記本電腦!);break;case 3:System.out.println(沒有白來,你得到一臺(tái)冰箱!);break;case q: System.out.println(“歡迎下次再來!”); System.exit(0);default:System.out.println(真不幸,你沒有獎(jiǎng)品!下次再來吧。);編譯源程序。在命令提示符窗口運(yùn)行程序,然后分別按1、2、3、r 結(jié)果如圖2.10 所示。圖 2.10dowhile 循環(huán)語句練習(xí)程序功能:求12+100 之和,并將求和表達(dá)式與所求的和顯示出來。
34、程序源代碼如下。class EXP2_11 public static void main(String args) int n=1, sum=0;do sum+=n+;while (n=100);System.out.println(1+2.+100 =+sum);(3)編譯并運(yùn)行程序,結(jié)果如圖2.11 所示。圖 2.11多重循環(huán)練習(xí)輸出九九乘法表的程序,源代碼如下。public class EXP2_12public static void main(String args)int i,j,n=9;System.out.print( * |);for (i=1;i=n;i+)System.
35、out.print( +i);System.out.print(n|);for (i=1;i=n;i+)System.out.print();System.out.println();for (i=1;i=n;i+)System.out.print( +i+ |);for (j=1;jb)return a+ +b;elsereturn b+ +a;public String sort(int a, int b, int c) int swap;if (ab) swap=a;a=b;b=swap;if (ac) swap=a;a=c;c=swap;if (bc) swap=b;b=c;c=swa
36、p;return a+ +b+ +c;public String sort(int arr) String s= ;int swap;for (int i=0; iarr.length; i+)for (int j=0; jarrj+1) swap=arrj;arrj=arrj+1;arrj+1=swap;for (int i=0; i10) throw new MyException(a); / 主動(dòng)拋出MyExceptionSystem.out.println(正常返回);public static void main(String args) try System.out.println
37、(n 進(jìn)入監(jiān)控區(qū),執(zhí)行可能發(fā)生異常的程序段);mathod(8);mathod(20);mathod(6);catch (MyException e) System.out.println(t 程序發(fā)生異常并在此處進(jìn)行處理);System.out.println(t 發(fā)生的異常為:+e.toString();System.out.println(這里可執(zhí)行其它代碼);編譯并運(yùn)行,結(jié)果如圖5.7所示。圖 5.7由基本數(shù)據(jù)類型的值構(gòu)建包裝類對(duì)象從包裝類對(duì)象中得到基本數(shù)據(jù)類型的值實(shí)驗(yàn)五 Java語言的字符串類實(shí)驗(yàn)?zāi)康睦斫庾址恓ava.lang.String對(duì)象對(duì)字符序列的存儲(chǔ)方式,掌握使用字符串
38、直接量和構(gòu)造函數(shù)創(chuàng)建String對(duì)象,理解字符串連接操作中的對(duì)象創(chuàng)建過程,掌握字符串查找相關(guān)方法的使用,掌握取子串操作相關(guān)方法的使用,掌握字符串與基本數(shù)據(jù)類型之間的轉(zhuǎn)換方法。實(shí)驗(yàn)要求編寫一個(gè)使用字符串類,以及字符串類相關(guān)方法的應(yīng)用程序。實(shí)驗(yàn)內(nèi)容使用字符串直接量和構(gòu)造函數(shù)創(chuàng)建String對(duì)象;字符串連接操作中的對(duì)象創(chuàng)建;調(diào)用字符串查找相關(guān)方法;調(diào)用獲取子串操作相關(guān)方法;實(shí)現(xiàn)字符串與基本數(shù)據(jù)類型之間的轉(zhuǎn)換。熟悉String類的構(gòu)造方法,掌握String類的常用方法/StringTest.javaimport javax.swing.*;public class StringTest String
39、string1, string2, string3, string4;byte byte1 = 72, 101, 108, 111, 32, 110, 101, 119, 32, 87, 111, 114, 108, 100;char char2 = H,e,l,l,o, ,n,e,w, , W,o,r,l,d;public StringTest() string1 = new String();string2 = new String(byte1,6,9);string3 = new String(char2,0,5)string4 = JOptionPane.showInputDialog
40、(Input a String:);System.out.println();System.out.println(String 1:”string1);System.out.println(String 2:”string2);System.out.println(String 3:”string3);System.out.println(String 4:”string4);public static void main(String args) StringTest st = new StringTest();System.exit(0);熟悉String類中獲取子字符串的方法/ Sub
41、string.java/* Practice how to use the various substring methods of the String class.*/public class Substring private static void doSubstring() String a = Alex Michael Hunter; System.out.println(Original string: + a); String b = a.substring(5); System.out.println(a.Substring(5) : + b); String c = a.s
42、ubstring(5,12); System.out.println(a.substring(5,12) : + c); String d = a.substring(13,a.length(); System.out.println(a.substring(13,a.length() : + d); System.out.println(); public static void main(String args) doSubstring(); StringBuffer /StringBufferTest.javapublic class StringBufferTest public st
43、atic void main(String args) StringBuffer name = new StringBuffer(Alex); name.append(, Hunter); / One way to convert a StringBuffer to a String String nameStr1 = name.toString(); / Allocates a new string that contains the sequence of characters / currently contained in the string buffer argument. Str
44、ing nameStr2 = new String(name); System.out.println(name : + name); System.out.println(nameStr1 : + nameStr1); System.out.println(nameStr2 : + nameStr2); Reverse a String/StringReverseChar.javapublic class StringReverseChar private static void doStringReverseChar() String a = Alex Michael Hunter; Sy
45、stem.out.println(nOriginal string: + a); StringBuffer b = new StringBuffer(a).reverse(); System.out.println(Reverse character string: + b); System.out.println(n); public static void main(String args) doStringReverseChar();Get Characters of a String/StringCharacters.javapublic class StringCharacters
46、private static void doCharAt() String a = Alex Michael Hunter; for (int i = 0; i x= + x + , y= + y + ; public static void main(String args) ToStringExample a1 = new ToStringExample(10, 20); System.out.println(a1); 編寫程序熟悉String類的其他方法。實(shí)驗(yàn)六 多線程基礎(chǔ)編程實(shí)驗(yàn)?zāi)康耐ㄟ^繼承線程類java.lang.Thread創(chuàng)建具有特定功能的線程類,通過實(shí)現(xiàn)接口java.lang.
47、Runnable創(chuàng)建可作為線程運(yùn)行的類,創(chuàng)建線程類對(duì)象,啟動(dòng)線程,并觀察運(yùn)行、停止。創(chuàng)建實(shí)現(xiàn)了Runnable接口的線程類對(duì)象以后,啟動(dòng)線程,通過觀察運(yùn)行和停止,掌握線程類java.lang.Thread常用方法的使用,掌握對(duì)線程執(zhí)行過程中的異常的處理方法。實(shí)驗(yàn)要求編寫一個(gè)實(shí)現(xiàn)接口java.lang.Runnable的簡單多線程應(yīng)用程序。實(shí)驗(yàn)內(nèi)容使用java.lang.Thread創(chuàng)建具有特定功能的線程類;創(chuàng)建以java.lang.Runnable為接口的線程類;啟動(dòng)線程,并觀察運(yùn)行、停止。Exercise 1#:Write a program that displays the name o
48、f the thread that executes main.Exercise 2#:Creat two threads, one thread print ”A” and the other print “B” alternately. E.g. ABBABAABBA.etc.Exercise 3#:隨便選擇兩個(gè)城市作為預(yù)選旅游目標(biāo)。實(shí)現(xiàn)兩個(gè)獨(dú)立的線程分別顯示10次城市名,每次顯示后休眠一段隨機(jī)時(shí)間(1000毫秒以內(nèi)),哪個(gè)城市先顯示完畢,就決定去哪個(gè)城市。分別用Runnable 接口和Thread類實(shí)現(xiàn)。實(shí)驗(yàn)七 多線程并發(fā)編程實(shí)驗(yàn)?zāi)康恼莆帐褂藐P(guān)鍵字synchronized同步方法、使用關(guān)
49、鍵字synchronized同步語句塊、和使用wait、notify(notifyAll)實(shí)現(xiàn)線程的通信,同時(shí),練習(xí)使用join實(shí)現(xiàn)線程的協(xié)作。實(shí)驗(yàn)要求在實(shí)驗(yàn)六的程序基礎(chǔ)上,編寫一個(gè)多線程并發(fā)的應(yīng)用程序。實(shí)驗(yàn)內(nèi)容創(chuàng)建多個(gè)線程;使用synchronized方法實(shí)現(xiàn)線程同步;運(yùn)用wait、notify(notifyAll)實(shí)現(xiàn)線程的通信;使用join實(shí)現(xiàn)線程的協(xié)作;Exercise 1#:Write a program that prints out the elapsed time each second from the start of execution, with another thr
50、ead that prints a message every fifteen seconds. Have the message-printing thread be notified by the time-printing thread as each second passes by. Add another thread that prints a different message every seven seconds without modifying the time-printing thread.Exercise 2#:設(shè)計(jì)兩個(gè)線程,一個(gè)充當(dāng)電子表,每隔1秒在DOS窗口顯
51、示下一系統(tǒng)時(shí)間;另一個(gè)充當(dāng)鬧鐘,每到整點(diǎn)就開始報(bào)時(shí),即在DOS窗口顯示5次整點(diǎn)提示,同時(shí)將第一個(gè)線程掛起,報(bào)時(shí)完畢再將第一個(gè)線程恢復(fù)運(yùn)行。實(shí)驗(yàn)步驟創(chuàng)建第一個(gè)類繼承Thread類用來顯示系統(tǒng)時(shí)間第一個(gè)類實(shí)現(xiàn)run()方法創(chuàng)建線程,線程體中每秒獲取一次系統(tǒng)時(shí)間并顯示。創(chuàng)建第二個(gè)類繼承Thread類用來實(shí)現(xiàn)鬧鐘功能第二個(gè)類實(shí)現(xiàn)run()方法創(chuàng)建線程,線程體中循環(huán)判斷當(dāng)前時(shí)間是否為整點(diǎn),若是則將第一個(gè)線程掛起,并每隔一秒輸出提示,提示完畢恢復(fù)第一個(gè)線程的執(zhí)行創(chuàng)建第三個(gè)類,包含main()方法,作為程序的執(zhí)行入口。實(shí)驗(yàn)八 字符流和字符流輸入/輸出編程實(shí)驗(yàn)?zāi)康恼莆栈谧止?jié)流進(jìn)行輸入/輸出的方法、基于字符流
52、進(jìn)行輸入/輸出的方法、字節(jié)流與字符流之間的轉(zhuǎn)換方法、對(duì)于字節(jié)文件和字符文件的讀寫方法,以及對(duì)輸入/輸出過程中可能發(fā)生的異常的處理方法。實(shí)驗(yàn)要求編寫一個(gè)運(yùn)用字符流和字符流輸入/輸出各種方法的應(yīng)用程序。實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)基于字節(jié)流進(jìn)行輸入/輸出;實(shí)現(xiàn)基于字符流進(jìn)行輸入/輸出;實(shí)現(xiàn)字節(jié)流與字符流之間的轉(zhuǎn)換;實(shí)現(xiàn)對(duì)于字節(jié)文件和字符文件的讀寫;實(shí)現(xiàn)對(duì)對(duì)輸入/輸出過程中異常的處理并觀察。Exercise 1#:有純文件“Early-Precaution.txt”,(1)計(jì)算這篇短文的字符數(shù)(含空白)共有多少?(2)若不含空白,這篇短文共有多少個(gè)字符?(3)統(tǒng)計(jì)這篇短文的單詞數(shù)。(4)統(tǒng)計(jì)這篇短文用了多少個(gè)單詞“
53、to”。(5)試計(jì)算這篇短文中,元音a,e,i,o,u的字符數(shù)各多少?(6)將這篇短文內(nèi)所有大寫字母改成小寫,并將更改后的短文寫到純文本文件”joke.txt” 里。There was an American couple who had no children, so they wanted to adopt a child. Finally, an orphanage contacted them, saying, We have a baby for adoption.Its a Russian orphan. The couple was delighted and went to b
54、ring the baby home. On the way home, they stopped by a university to enroll in a Russian course. Why do you want to learn Russian? The English that we speak is a very good language, the university secretary asked.Well, we just adopted a Russian baby. When he begins to speak Russian in a few years, w
55、e are afraid that we might not be able to understand him, the couple replied.實(shí)驗(yàn)九 集合、列表、映射類編程實(shí)驗(yàn)?zāi)康恼莆?java.util.Set接口的實(shí)現(xiàn)類的特點(diǎn)和使用方法、 java.util.List接口的實(shí)現(xiàn)類的特點(diǎn)和使用方法、 java.util.Map接口的實(shí)現(xiàn)類的特點(diǎn)和使用方法、對(duì)集合進(jìn)行排序的方法、以及將非線程安全集合轉(zhuǎn)換為線程安全的集合的方法。實(shí)驗(yàn)要求編寫一個(gè)包括集合、列表、映射類,以及運(yùn)用這些類的方法的應(yīng)用程序。實(shí)驗(yàn)內(nèi)容創(chuàng)建java.util.Set接口的實(shí)現(xiàn)類;創(chuàng)建java.util.List接
56、口的實(shí)現(xiàn)類;創(chuàng)建java.util.Map接口的實(shí)現(xiàn)類;實(shí)現(xiàn)集合進(jìn)行排序;實(shí)現(xiàn)非線程安全集合轉(zhuǎn)換為線程安全的集合。附錄資料:java重點(diǎn)筆記歸納整理Java初級(jí)eclipse快捷鍵:右鍵REFACTER-RENAME 一改全改ALT+ENTER 查看現(xiàn)在項(xiàng)目的位置 Alt+ 當(dāng)前行和下面一行交互位置(特別實(shí)用,可以省去先剪切,再粘貼了) Alt+ 當(dāng)前行和上面一行交互位置(同上) Ctrl+W 關(guān)閉當(dāng)前Editer C+/ 注釋(取消注釋)選中行C+S+/ 注釋多行C+S+取消注釋 F2 查看完整的函數(shù)幫助信息,并且可以復(fù)制粘貼文字 ,當(dāng)選中文件時(shí),有改名作用 F3找到變量的定義 C+鼠標(biāo)點(diǎn)擊
57、 找到變量的定義 作用和F3C差不多。 F4找到接口方法的具體實(shí)現(xiàn)類.=C+T F5刷新 C+F6:在打開的文件間進(jìn)行切換; C+F7:在資源窗口間進(jìn)行切換; C+F8:在各種模式間進(jìn)行切換; C+E:選擇某個(gè)打開的文件; C+S+r:打開一個(gè)文件; c+s+t:打開一個(gè)類; c+s+f:格式化代碼; C+S+O:導(dǎo)入需要的類 c+o:查看類結(jié)構(gòu); c+t:列出子類或接口實(shí)現(xiàn)類(類的等級(jí)結(jié)構(gòu)) Ctrl+Alt+ 復(fù)制當(dāng)前行到下一行(復(fù)制增加) Ctrl+Alt+ 復(fù)制當(dāng)前行到上一行(復(fù)制增加) CtrlK (加SHIFT是向上)向下查找選中的字符串 Ctrlshift 向上向下查找一個(gè)函數(shù)和
58、變量 Java基礎(chǔ)知識(shí)1.Java是Sun公司的JamesGosling發(fā)明的面向?qū)ο蟮目煽缙脚_(tái)的編程語言。2.SUN公司,Stanford University Network,斯坦福大學(xué);3.平臺(tái):我們把cpu處理器與操作系統(tǒng)的整體叫做平臺(tái)。不同的操作系統(tǒng)支持不同的cpu指令集。不同的cup有不同的指令集,如intel和AMD.4.JDK:Java Software Develop Kit. JVM:Java Virtual Machine.Java虛擬機(jī),包含:類加載器,字節(jié)碼校驗(yàn)器,java解釋器。 JRE:java運(yùn)行時(shí)環(huán)境,包含jvm與java運(yùn)行支持類庫。5.環(huán)境變量:java_
59、home;classpath:.;C:Javajdk1.6.0_10lib;path6.jdkjdk1.1為jvm增加了JIT(即時(shí)編譯)編譯器;jdk1.2也叫java2;jdk1.5也叫java5(改動(dòng)較大);現(xiàn)在使用的是jdk1.6。7.jdk,Java Developent ToolKit;開發(fā)java需要有源程序文件到中間文件的編譯器;運(yùn)行java中間文件需要對(duì)應(yīng)平臺(tái)的解釋器(官方叫法JVM);編譯器、解釋器加上一些其它的組件合稱為JDK.JDK的另外一個(gè)稱呼為Java Software develop kit.JDK即開發(fā)java程序的組件。jdk=java編譯器+jre(java
60、運(yùn)行環(huán)境) jre=jvm+運(yùn)行支持類庫 eclipse和jbuilder本身自帶了java編譯器但不包含jre。8.jre:Java Runtime Environment,java運(yùn)行時(shí)需要的環(huán)境。有兩類,開發(fā)需要的jre和公共jre。9.jdk版本,jdk1.2到j(luò)dk1.4為java2時(shí)代,java技術(shù)有j2ee,j2se,jeme.jdk1.5,也叫做java5,技術(shù)術(shù)語改為javase,javaee,javame.1.5在1.4的基礎(chǔ)上改動(dòng)很大。10.常用的DOS命令:dir,現(xiàn)實(shí)當(dāng)前文件夾的所有文件;cd . 打開上級(jí)目錄;exit:退出。11.java注釋:java注釋分為三種
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026版高考化學(xué)一輪總復(fù)習(xí)考點(diǎn)突破第九章有機(jī)化學(xué)基礎(chǔ)第47講羧酸及其衍生物考點(diǎn)1羧酸酯的結(jié)構(gòu)與性質(zhì)
- 2025年客戶服務(wù)招聘筆試試題及答案
- 2025電氣工程師招聘筆試題庫及答案
- 2025年管培生測(cè)評(píng)試題及答案
- 2025年金控集團(tuán)筆試試題及答案
- 2025年風(fēng)寒解表藥考試題及答案
- 2025年職業(yè)品德面試題及答案
- 2025年模特潛力測(cè)試題及答案
- 2025年映山紅試題及答案
- 2025年城市銷售面試題目及答案
- 2025至2030年中國特種化學(xué)品行業(yè)市場競爭現(xiàn)狀及前景戰(zhàn)略研判報(bào)告
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識(shí)
- 花崗巖循環(huán)荷載作用下的力學(xué)性能研究
- vda6.3vda6.5考試試題及答案
- 紅娘合伙人協(xié)議書
- 《2025年CSCO腎癌診療指南》解讀
- 2025年全國保密教育線上培訓(xùn)考試試題庫(含答案)含答案詳解
- 清洗儲(chǔ)水罐服務(wù)合同協(xié)議
- 家具企業(yè)勞動(dòng)合同協(xié)議
- DB64-T 2131-2025 建筑施工非常規(guī)高處吊籃施工規(guī)程
- 2024-2025學(xué)年陜西省西安市北師大版七年級(jí)上冊(cè)入學(xué)分班考試數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論