課件新Java實驗指導(dǎo)書_第1頁
課件新Java實驗指導(dǎo)書_第2頁
課件新Java實驗指導(dǎo)書_第3頁
課件新Java實驗指導(dǎo)書_第4頁
課件新Java實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子系資料Java語言程序設(shè)計實 驗 指 導(dǎo)目 錄實驗1 Java開發(fā)環(huán)境的熟悉2實驗2 Java程序設(shè)計語言基礎(chǔ)5實驗3 字符串(String類)的使用7實驗4 類與對象10實驗5 繼承與多態(tài)12實驗6 常用工具類14實驗7 GUI編程及事件處理17實驗8 Java中的多線程18實驗9 輸入輸出流22實驗1 Java開發(fā)環(huán)境的熟悉一、實驗?zāi)康?、掌握下載JDK 軟件包、Eclipse軟件的方法;2、掌握設(shè)置Java 程序運行環(huán)境的方法;3、掌握編寫與運行Java 程序的方法;4、了解Java 語言的概貌;5、為學(xué)習(xí)Java 語言和進行Java 程序的實驗做好準備工作。二、實驗內(nèi)容1、JDK

2、的下載與安裝下載能安裝在相應(yīng)的操作系統(tǒng)類型中的J2SE系統(tǒng)安裝程序。為了建立基于SDK 的Java 運行環(huán)境,需要先下載Sun 的免費SDK 軟件包。SDK 包含了一整套開發(fā)工具,其中包含對編程最有用的是Java 編譯器、Applet 查看器和Java 解釋器。在瀏覽器中輸入 公司網(wǎng)站頁面,然后在里面找到下載的鏈接進行下載就行。目前的版本最高是Jdk1.7,但是在使用上更多的還是使用Jdk1.7版本。下載完后進行安裝,和一般的軟件安裝過程差不多,自己選擇目錄進行jdk的安裝。在本實驗中假設(shè)jdk的安裝路徑是“C:jdk1.7.0_05“。2、Java運行環(huán)境配置jdk 中的工具都是命令行工具,

3、需要從命令行即MSDOS 提示符下運行它們。很多人可能會不習(xí)慣,但這是Sun 特意采取的策略,為的是把精力更多地投入到Java 語言本身而不是花在開發(fā)工具上。為了能正確方便的使用JDK,可手工配置一些Windows 的環(huán)境變量. (1)設(shè)置Windows 98在C:autoexec.bat 文件中,添加以下內(nèi)容:set path=%path%; C:jdk1.7.0_05binset classpath=.; C:jdk1.7.0_05lib;%classpath%C:jdk1.7.0_05bin 為程序安裝路徑,如果安裝時做了修改,這里必須做出相應(yīng)的修改?!皊et path”語句設(shè)置Java

4、 編譯運行程序的路徑,“set classpath”語句設(shè)置Java 包的路徑,其中的“.”表示在當(dāng)前目錄下均可執(zhí)行Java 程序。autoexec.bat 文件修改后存盤,然后重新啟動計算機,即完成了設(shè)置。(2)設(shè)置Windows XP/NT/2000以Windows XP 為例說明設(shè)置過程。在桌面“我的電腦”圖標(biāo)上單擊右鍵,選擇“屬性”菜單,單擊高級選項卡。在“高級”選項卡中單擊“環(huán)境變量”按鈕。將出現(xiàn)“環(huán)境變量”設(shè)置界面,在“系統(tǒng)變量”框中選擇“Path”,然后單擊“編輯”按鈕,在出現(xiàn)的“編輯系統(tǒng)變量”對話框中,在“變量值”欄的命令前添加“C:jdk1.7.0_05bin;”,用同樣方法

5、設(shè)置環(huán)境變量“classpath”,其值為“C:jdk1.7.0_05lib;”。設(shè)置完成后,單擊“開始”“所有程序”“附件”“命令提示符”打開DOS 窗口,在命令提示符下輸入“java”或“javac”,回車后,如果出現(xiàn)其用法參數(shù)提示信息,則安裝正確。三、實驗要求1、了解java集成開發(fā)環(huán)境jdk的結(jié)構(gòu);2、掌握jdk的環(huán)境變量的配置,理解一個java程序的運行過程;3、能基本上清楚java程序的組成,簡單的查找一些程序錯誤;4、能分辨出應(yīng)用程序何小應(yīng)用程序的不同,及他們在運行上的差別; 四、實驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、jdk程序集成環(huán)

6、境Eclipse 五、實驗步驟1、先安裝好jdk;2、配置環(huán)境變量;3、書寫java程序;4、運行程序,查看結(jié)果。 六、源代碼及測試數(shù)據(jù)自己輸入一個程序作為測試的數(shù)據(jù)。七、實驗報告要求(學(xué)生完成)實驗報告應(yīng)包括以下幾個部分:1、jdk的簡單介紹;2、環(huán)境變量的設(shè)置;3、應(yīng)用程序和小應(yīng)用程序的運行過程;4、程序的測試結(jié)果和問題;5、實驗總結(jié)。八、思考題(學(xué)生完成)1、如何將應(yīng)用程序和小應(yīng)用程序放到一個java程序中去,及該java程序即可以作為應(yīng)用程序運行,也可以作為小應(yīng)用程序運行?2、熟悉一個用于java程序開發(fā)的工具,建議大家使用Eclipse。如何使用Eclipse來執(zhí)行java

7、程序?3、JDK和JRE的區(qū)別?實驗2 Java程序設(shè)計語言基礎(chǔ)一、實驗?zāi)康?、了解Java 的數(shù)據(jù)類型;2、掌握各種變量的聲明方式;3、理解運算符的優(yōu)先級;4、掌握Java 基本數(shù)據(jù)類型、運算符與表達式、數(shù)組的使用方法;5、理解Java 程序語法結(jié)構(gòu),掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)語法的程序設(shè)計方法;6、通過以上內(nèi)容,掌握Java 語言的編程規(guī)則。二、實驗內(nèi)容讀入一個浮點數(shù)值,將其轉(zhuǎn)換為中文金額的大寫方式,如123.45,轉(zhuǎn)換為:壹佰貳拾叁元肆角伍分。要求:(1)當(dāng)金額為整數(shù)時,只表示整數(shù)部分,省略小數(shù)部分,并添加“整”字。例如,123表示為:壹佰貳拾叁元整;(2)當(dāng)金額中含有連續(xù)的0時,

8、只需寫一個“零”即可,例如, 10005表示為:壹萬零伍元整;(3)10的表示方式,例如,110元表示為:壹佰壹拾元整,而10則表示為:拾元整。提示:將字符串型轉(zhuǎn)換為浮點型可以用Float.parseFloat(s)函數(shù)轉(zhuǎn)換。三、實驗要求1、能正確的進行數(shù)據(jù)轉(zhuǎn)換;2、能在輸入數(shù)據(jù)錯誤的情況下給出提示。四、實驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。 五、實驗步驟1、根據(jù)題目要求,畫出程序流程圖;2、給出本程序的java數(shù)據(jù)結(jié)構(gòu);3、編寫出程序;4、調(diào)試程序:給出一些測試數(shù)據(jù),檢查輸出結(jié)果。 六、測試數(shù)據(jù) 輸入數(shù)據(jù):1

9、、1232、123113、123104、012311正確結(jié)果: 1、壹佰二十三元 2、壹佰二十三元一角一分 3、壹佰二十三元一角 4、壹佰二十三元一角一分七、實驗報告(學(xué)生完成)實驗報告應(yīng)包括以下幾個部分:1、程序流程圖;2、程序的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、程序的源代碼(程序中必須有相關(guān)的注釋信息)4、程序運行結(jié)果的分析。八、思考題(學(xué)生完成)1、Java語言中的循環(huán)語句與其他語言中的有何區(qū)別?2、本實驗中的測試數(shù)據(jù)前綴0和后綴0怎樣處理比較好?實驗3 字符串(String類)的使用一、實驗?zāi)康?、區(qū)分String類和StringBuffer類;2、掌握String類和StringBuffer類的基本

10、使用方法3、通過上機編寫和運行關(guān)于字符串的程序來加深對String類和StringBuffer類等的了解二、實驗內(nèi)容本實驗的內(nèi)容為:編寫一個與居民身份證有關(guān)的程序,可以是Applet或者Application。要求創(chuàng)建一個類,該類至少具有以下3個方法:1)檢驗居民身份證的真?zhèn)?,若為假身份證,需要提供其虛假信息,比如居民出生年月日有錯等。2)獲取真實居民身份證的信息,該信息包括4個部分: 該身份證是新身份證還是舊身份證。 該居民身份證的地址碼,如果同學(xué)有最新縣及縣以上行政區(qū)劃代碼可得到居民身份證詳細的省、市、縣(區(qū))的名稱,若沒有則只需顯示地址碼信息即可。 該居民的出生年月日。 該居民的性別。3

11、)將15位的舊身份證轉(zhuǎn)換成18位的新身份證?!緟⒖假Y料】1)舊身份證共有15位,其格式如下:假設(shè)身份證號碼為:440524800101001地 址 碼出生日期碼順 序 碼440524800101001廣東省汕頭市潮陽縣出生年出生月出生日2)新身份證共有18位,其格式如下:假設(shè)身份證號碼為 址 碼出生日期碼順序碼校驗東省汕頭市潮陽縣出生年出生月出生日3)地址碼表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按 GB/T 2260的規(guī)定執(zhí)行,有條件的同學(xué)可以到“中華人民共和國國家統(tǒng)計局”網(wǎng)站()查看最新縣及縣以

12、上行政區(qū)劃代碼(截止2003年6月30日),該文章的網(wǎng)址為“4)生日期碼表示編碼對象出生的年、月、日,按 GB/T 7408 的規(guī)定執(zhí)行。年、月、日代碼之間不用分隔符。舊身份證號碼的出生日期碼只有6位,而新身份證的出生日期碼有8位,年份采用4位表示。5)順序碼表示在同一地址碼所標(biāo)識的區(qū)域范圍內(nèi),對同年、同月、同日出生的人編定的順序號,順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性,該順序碼有3位。6)校驗碼采用ISO 7064:1983,MOD 11-2 校驗碼系統(tǒng),該校驗碼只有1位,在新身份證中被采用,其公式為(ai×Wi)(mod 11),在公式中: i表示號碼字符從右至左包括校驗碼在內(nèi)

13、的位置序號; ai表示第i位置上的號碼字符值; Wi表示第i位置上的加權(quán)因子,其數(shù)值依據(jù)公式Wi=2(i-1)(mod 11)計算得出。 在求出(ai×Wi)(mod 11)值后依據(jù)下表得到校驗碼:(ai×Wi)(mod 11)值012345678910校驗碼字符值10X98765432三、實驗要求1、要求學(xué)生在上機實驗前一定要非常清楚并靈活運用該章所講過的內(nèi)容;2、在上機實驗前編寫好實驗內(nèi)容要求的程序,以便上機實驗時調(diào)試、修改等。3、上機實驗后,每位學(xué)生必須對該次實驗內(nèi)容寫一份實驗報告,包括程序內(nèi)容、調(diào)試過程、運行情況和結(jié)果等。四、實驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)

14、或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。 五、實驗步驟1、根據(jù)題目要求,畫出程序流程圖;2、給出本程序的java數(shù)據(jù)結(jié)構(gòu);3、編寫出程序;4、調(diào)試程序:給出一些測試數(shù)據(jù),檢查輸出結(jié)果。 七、實驗報告(學(xué)生完成)實驗報告應(yīng)包括以下幾個部分:1、程序流程圖;2、程序的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、程序的源代碼(必須包含相關(guān)的注釋信息)4、程序運行結(jié)果的分析。八、思考題(學(xué)生完成)1Java程序中字符串常量使用什么類來表示?字符串變量又使用什么類來表示?它們主要區(qū)別在哪里?2請說明程序String s1="I like "s1+="Java

15、!" 和程序StringBuffer s1=new StringBuffer("I like "); s1.append("Java!"); 的區(qū)別。依據(jù)你得出的結(jié)論,如果程序需要處理大量的字符串連接操作,應(yīng)該盡量使用String類還是StringBuffer類?實驗4 類與對象一、實驗?zāi)康谋緦嶒灥哪康挠糜谥笇?dǎo)讀者掌握Java語言面向?qū)ο蟮某绦蛟O(shè)計方法,理解對象的封裝等概念,要求讀者在調(diào)試實例程序后,總結(jié)出面向?qū)ο蟮氖聞?wù)定義以及以對象的形式進行封裝等內(nèi)容。二、實驗內(nèi)容1、編寫一個名為“復(fù)數(shù)”的類,包含復(fù)數(shù)的實部和虛部(數(shù)據(jù)成員),以及復(fù)數(shù)之間的

16、基本算術(shù)運算:加、減(方法成員),并要求復(fù)數(shù)加減運算,程序運行中能對給定的復(fù)數(shù)進行運算,并打印運算的結(jié)果。2、用類來描述游戲角色的交手次數(shù)、經(jīng)驗值、生命值之間的關(guān)系,并斷定角色決斗的勝負。三、實驗要求1、加減運算能夠接收不同類型的參數(shù)既可以實現(xiàn)復(fù)數(shù)與實數(shù)的加減、復(fù)數(shù)與復(fù)數(shù)的加減運算。2、兩游戲角色決斗。角色1交手次數(shù)1,生命值1,經(jīng)驗值2;角色2交手次數(shù)1,生命值2,經(jīng)驗值3。經(jīng)驗值每增加50時,生命值1;生命值<0判為負。生命值初始為1000,經(jīng)驗值初始為0。3、給定二個不同的角色,判定交手的勝負關(guān)系。4、實驗報告給出決斗結(jié)果和交手次數(shù)5、實驗報告給出所有源代碼。 四、實驗環(huán)

17、境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。 五、實驗步驟 內(nèi)容一:1、創(chuàng)建“復(fù)數(shù)”類Complex,定義實部、虛部成員2、定義構(gòu)造函數(shù)接收二個double參數(shù)用來初始化數(shù)據(jù)成員3、定義二個復(fù)數(shù)運算函數(shù)plus()以及minus()各接收一個復(fù)數(shù)類型以實現(xiàn)復(fù)數(shù)與復(fù)數(shù)的加減運算。4、定義二個復(fù)數(shù)運算函數(shù)plus()以及minus()各接收一個double類型以實現(xiàn)復(fù)數(shù)與與實數(shù)的加減運算。4、定義一個打印方法。5、在main()方法中創(chuàng)建復(fù)數(shù)對象并調(diào)用相關(guān)方法來驗證。內(nèi)容二:1、建立角色類Role,給出相應(yīng)的成員,并能以生命值、經(jīng)驗值初

18、始化角色對象。2、在角色類中建立fight方法,接收一個角色類型的參數(shù)并與之“戰(zhàn)斗”,返回勝者信息。3、在主函數(shù)中初始化二個角色,調(diào)用fight方法。 六、測試數(shù)據(jù) 略七、實驗報告(學(xué)生完成)實驗報告應(yīng)包括以下幾個部分:1、程序流程圖;2、程序的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、程序的源代碼及相關(guān)注釋4、程序運行結(jié)果的分析。八、思考題(學(xué)生完成)1.定義一個點類“Point”。Point 類的屬性有x 軸和y 軸坐標(biāo),可以通過方法setX()設(shè)置x軸坐標(biāo),方法setY()設(shè)置y 軸坐標(biāo),方法getX()獲得x 軸坐標(biāo),方法getY()獲得y 軸坐標(biāo)。編寫一個測試類PointTest 來創(chuàng)建Point

19、 類的對象,測試該類。2.編程定義一個棧類,它封裝了棧數(shù)組,判斷??辗椒ā⑴袛鄺M方法以及進棧和出棧。實驗5 繼承與多態(tài)一、實驗?zāi)康?、掌握類的繼承關(guān)系和派生方法;2、掌握多態(tài)的概念與使用;3、掌握接口的定義與使用;4、掌握包的概念與使用。二、實驗內(nèi)容1、利用接口編寫計算三角形、梯形面積及周長的程序。2、計算 式1:y = x + x/2 + x/3 + + x/n; 式2:y = x + x/2! + x/3! + + x/n!;要求:x為實數(shù),n為正整數(shù)。任意輸入當(dāng)n為奇數(shù)時,按照式1計算,當(dāng)n為偶數(shù)時,按照式2計算。利用繼承機制編程三、實驗要求1、編寫源程序2、要利用繼承機制編程。

20、60;四、實驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。 五、實驗步驟1、輸入源程序;2、利用相關(guān)工具(Eclipse運行本程序); 六、測試數(shù)據(jù) 略七、實驗報告(學(xué)生完成)實驗報告應(yīng)包括以下幾個部分:1、程序流程圖;2、程序的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、程序的源代碼4、程序運行結(jié)果的分析。八、思考題(學(xué)生完成)1、Java中繼承和多態(tài)的行為與C+中的有何不同?2、Java中的繼承和多態(tài)的書寫格式與C+有何不同?實驗6 常用工具類一、實驗?zāi)康?、通過編程實踐掌握幾種在Java中預(yù)定義的常用工具類 List、Set和Map Vec

21、tor和Stack 2、通過實驗理解和掌握 Java Applet的基本知識 二、實驗內(nèi)容1、使用本章介紹的一種集合類型編寫程序,實現(xiàn)從控制臺任意輸入若干名字,如Mike、Jone、Benny,將它們以字典序按升序方式輸出。2、從下面文本中計算單詞“Java”、“l(fā)anguage”、“simple”的出現(xiàn)次數(shù),并按次數(shù)從大到小輸出結(jié)果。文本內(nèi)容為:Java is certainly a good programming language. Java was never just a language. Java is a whole platform. Java has a lot of ni

22、ce language features. Java 2D was designed so that simple operations are simple and complex operations are feasible.3、編寫一個Applet,顯示當(dāng)前日期和時間。顯示的文字顏色、字體、大小均在HTML文件中定義。提示:可以使用java.util包中的Calendar類,該類提供了年、月、日、小時、分、秒等信息,可以使用int get(int calendarField)方法來返回由參數(shù)calendarField指定的分量值,如若實參為Calendar.YEAR,則該方法將返回當(dāng)前

23、的年份。因此可通過calendarField指定的分量Calendar.YEAR、Calendar.MONTH、Calendar.DATE、Calendar.HOUR、Calendar.MINUTE和Calendar.SECOND調(diào)用get()方法來取得當(dāng)前的日期和時間。三、實驗要求1、編寫源程序2、要利用java的工具類。 四、實驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。 五、實驗步驟1、輸入源程序;2、利用相關(guān)工具(Eclipse運行本程序); 六、測試數(shù)據(jù) 略七、實驗報告(學(xué)生完成)實驗報告應(yīng)包括以下

24、幾個部分:1、程序流程圖;2、程序的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、程序的源代碼及相關(guān)注釋4、程序運行結(jié)果的分析。八、思考題(學(xué)生完成)1、列舉幾種可以遍歷集合對象中元素的方法。2、如何向一個HashMap對象中添加元素?實驗7 GUI編程及事件處理一、實驗?zāi)康?、了解和掌握Java語言的關(guān)于GUI編程的基礎(chǔ)類(JFC),并對AWT包和Swing包中的組件比較。2、掌握Swing包的基本組件如JLable、JTextField、JPasswordField、JTextArea、JButton3、掌握常見的容器組件如JPanel、JFrame等。4、掌握Swing的種布局管理器來管理布局方式。5、理解和掌握j

25、ava的事件處理機制二、實驗內(nèi)容1編寫一個java程序Counter.java,實現(xiàn)一個計算器的圖形界面,實現(xiàn)”+,-,*,/”這些基本運算。2編寫一個java程序FileMenu.java,設(shè)計一個簡易文件管理菜單。菜單有“文件”、“編輯”、“格式”、“窗口”、“幫助”。其中,文件菜單項有子菜單項:新建、打開、關(guān)閉、退出;編輯菜單項有子菜單項:復(fù)制、粘貼、查找、替換、定位;“格式”菜單可以設(shè)置前景色、背景色、字體的風(fēng)格、指定字體格式等內(nèi)容;幫助菜單項有子菜單項:用戶幫助、版本說明。采用Windows操作系統(tǒng)的外觀。3編寫程序,實現(xiàn)通過鼠標(biāo)輪實現(xiàn)對一個圓形的大小控制及通過鍵盤實現(xiàn)圓形的移動。4

26、編寫程序,實現(xiàn)用戶注冊的功能。具體包括用戶的用戶名、密碼、確認密碼、性別、出生年月。另外設(shè)計兩個按鈕“確認”和“取消”。當(dāng)用戶按下“確認”按鈕時,可以將注冊信息在屏幕上顯示出來。如果按下“取消”,則退出用戶注冊。要求使用布局管理器(布局管理器主要包括:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout。)三、實驗要求1、了解java系統(tǒng)圖形用戶界面的基本工作原理和界面的設(shè)計步驟;2、了解圖形用戶界面的事件響應(yīng)機制;3、掌握圖形用戶界面各種常用的基本組建的使用方法及其事件響應(yīng);4、掌握圖形用戶界面各種布局策略的設(shè)計與使用。四、實

27、驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Sdk程序集成環(huán)境或Jbuilder程序集成環(huán)境。五、實驗步驟1、輸入源程序;2、利用相關(guān)工具(Eclipse運行本程序); 六、測試數(shù)據(jù) 略七、實驗報告(學(xué)生完成)實驗報告應(yīng)包括以下幾個部分:1、程序流程圖;2、程序的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、程序的源代碼及相關(guān)注釋4、程序運行結(jié)果的分析。八、思考題(學(xué)生完成)1、Java中的圖形界面的各個類之間的關(guān)系?2、GridBagLayout的布局特點?3常見的事件處理方式有哪幾種?請比較各種方式的特點。實驗8 Java中的多線程一、實驗?zāi)康恼莆認ava多線程應(yīng)用程序設(shè)計方法,

28、并了解在Java用程序中控制線程狀態(tài)的方法。二、實驗內(nèi)容隨著計算機的飛速發(fā)展,個人計算機上的操作系統(tǒng)也紛紛采用多任務(wù)和分時設(shè)計,將早期只有大型計算機才具有的系統(tǒng)特性帶到了個人計算機系統(tǒng)中。一般可以在同一時間內(nèi)執(zhí)行多個程序的操作系統(tǒng)都有進程的概念。一個進程就是一個執(zhí)行中的程序,而每一個進程都有自己獨立的一塊內(nèi)存空間、一組系統(tǒng)資源。在進程概念中,每一個進程的內(nèi)部數(shù)據(jù)和狀態(tài)都是完全獨立的。Java程序通過流控制來執(zhí)行程序流,程序中單個順序的流控制稱為線程,多線程則指的是在單個程序中可以同時運行多個不同的線程,執(zhí)行不同的任務(wù)。多線程意味著一個程序的多行語句可以看上去幾乎在同一時間內(nèi)同時運行。線程與進程

29、相似,是一段完成某個特定功能的代碼,是程序中單個順序的流控制;但與進程不同的是,同類的多個線程是共享一塊內(nèi)存空間和一組系統(tǒng)資源,而線程本身的數(shù)據(jù)通常只有微處理器的寄存器數(shù)據(jù),以及一個供程序執(zhí)行時使用的堆棧。所以系統(tǒng)在產(chǎn)生一個線程,或者在各個線程之間切換時,負擔(dān)要比進程小的多,正因如此,線程被稱為輕負荷進程(light-weight process)。一個進程中可以包含多個線程。本實驗中要求大家掌握一下幾個程序,并給出結(jié)果:1、通過繼承類Thread構(gòu)造線程體class SimpleThread extends Thread public SimpleThread(String str) sup

30、er(str); /調(diào)用其父類的構(gòu)造方法public void run() /重寫run方法for (int i = 0; i < 10; i+) System.out.println(i + " " + getName();/打印次數(shù)和線程的名字try sleep(int)(Math.random() * 1000);/線程睡眠,把控制權(quán)交出去 catch (InterruptedException e) System.out.println("DONE! " + getName();/線程執(zhí)行結(jié)束public class TwoThreadsT

31、est public static void main (String args) new SimpleThread("First").start();/第一個線程的名字為Firstnew SimpleThread("Second").start();/第二個線程的名字為Second 2、通過接口構(gòu)造線程體public class Clock extends java.applet.Applet implements Runnable /實現(xiàn)接口Thread clockThread; public void start() /該方法是Applet的方法,

32、不是線程的方法if (clockThread = null) clockThread = new Thread(this, "Clock");/*線程體是Clock對象本身,線程名字為"Clock"*/clockThread.start(); /啟動線程 public void run() /run()方法中是線程執(zhí)行的內(nèi)容while (clockThread != null) repaint(); /刷新顯示畫面try clockThread.sleep(1000); /睡眠1秒,即每隔1秒執(zhí)行一次 catch (InterruptedExceptio

33、n e) public void paint(Graphics g) Date now = new Date(); /獲得當(dāng)前的時間對象g.drawString(now.getHours() + ":" + now.getMinutes()+ ":" +now.getSeconds(), 5, 10);/顯示當(dāng)前時間public void stop() /該方法是Applet的方法,不是線程的方法clockThread.stop(); clockThread = null; 3、線程的調(diào)度class ThreadTestpublic static voi

34、d main( String args ) Thread t1 = new MyThread("T1");t1.setPriority( Thread.MIN_PRIORITY ); /設(shè)置優(yōu)先級為最小t1.start( );Thread t2 = new MyThread("T2");t2.setPriority( Thread.MAX_PRIORITY ); /設(shè)置優(yōu)先級為最大t2.start( );Thread t3 = new MyThread("T3");t3.setPriority( Thread.MAX_PRIORITY

35、 ); /設(shè)置優(yōu)先級為最大t3.start( );class MyThread extends Thread String message;MyThread ( String message ) this.message = message;public void run() for ( int i=0; i<3; i+ )System.out.println( message+" "+getPriority() ); /獲得線程的優(yōu)先級 三、實驗要求1、了解線程的概念;2、了解簡單的多線程編程;3、了解線程的同步過程,能夠編寫線程的同步程序。 四、實驗環(huán)境

36、1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。五、實驗步驟 1、輸入上述程序; 2、分別執(zhí)行各個程序;3、分析執(zhí)行結(jié)果,進一步加深對多線程概念的理解。 六、測試數(shù)據(jù)略七、實驗報告要求實驗報告應(yīng)包括以下幾個部分:1、Java中多線程的概念;2、多線程的幾種實現(xiàn)方法;3、線程同步的方法。八、思考題1、java中的線程同步機制與C+中的比較?實驗9 輸入輸出流一、實驗?zāi)康模?、掌握使用輸入輸出流進行文件的讀寫操作。二、實驗內(nèi)容:1、按程序模板要求,將注釋處替換為Java程序代碼。實現(xiàn)文件加密。2、按程序模板要求,將注釋處替換為Java程序代碼

37、。給文件的內(nèi)容添加行號.3、串行化對象Student到本地文件,并在下一次運行程序時用來初始化。(選做)三、實驗要求:1、實驗報告給出內(nèi)容1,2的填充代碼以及內(nèi)容3的全部源代碼。四、實驗環(huán)境1、PC微機;2、DOS操作系統(tǒng)或 Windows 操作系統(tǒng);3、Eclipse程序集成環(huán)境。五、實驗步驟:1、按程序模板要求,將注釋處替換為Java程序代碼該程序?qū)⒁汛嬖诘奈谋疚募用芎蟠嫒肓硪粋€文本文件中。請按模板要求,將【代碼1】【代碼6】替換為Java程序代碼SecretExample.javaimport java.io.*;public class SecretExample public st

38、atic void main(String args ) File fileOne=new File("hello.txt"), fileTwo=new File("hello.secret"); char b=new char100; try FileReader in=【代碼1】 / 創(chuàng)建指向fileOne的字符輸入流 FileWriter out=【代碼2】 / 創(chuàng)建指向fileTwo字符輸出流 int n=-1; while(n=in.read(b)!=-1) for(int i=0;i<n;i+) bi=(char)(bi'a'); 【代碼3】 / out將數(shù)組b的前n單元寫到文件 【代碼3】 / out關(guān)閉 in=【代碼4】 / 創(chuàng)建指向fileTwo的字符輸入流 System.out.println("加密后的文件內(nèi)容:"); while(n=in.read(b)!=-1) String str=new String(b,0,n); System.out.println(str); in=【代碼5】 / 創(chuàng)建指向fileTwo的字符輸入流 System.out.println(&q

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論