面向?qū)ο蟪绦蛟O(shè)計(jì)及WINDOWS編程實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)及WINDOWS編程實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)及WINDOWS編程實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)及WINDOWS編程實(shí)驗(yàn)指導(dǎo)書(shū)_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)及WINDOWS編程實(shí)驗(yàn)指導(dǎo)書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)及WINDOWS編程實(shí)驗(yàn)指導(dǎo)書(shū)(java程序設(shè)計(jì))2012.2目 錄第一部分 JAVA集成開(kāi)發(fā)環(huán)境2第二部分 Java程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目16實(shí)驗(yàn)一 熟悉Java程序開(kāi)發(fā)環(huán)境17實(shí)驗(yàn)二Java基本數(shù)據(jù)類(lèi)型及運(yùn)算20實(shí)驗(yàn)三 流程控制語(yǔ)句22實(shí)驗(yàn)四 面向?qū)ο蟪绦蛟O(shè)計(jì)初步24實(shí)驗(yàn)五 類(lèi)與對(duì)象的設(shè)計(jì)26實(shí)驗(yàn)六 類(lèi)的繼承30實(shí)驗(yàn)七 抽象類(lèi)和接口34實(shí)驗(yàn)八 數(shù) 組37實(shí)驗(yàn)九 異常處理39實(shí)驗(yàn)十 流式輸入輸出處理42實(shí)驗(yàn)十一 線程45實(shí)驗(yàn)十二 用戶圖形界面GUI標(biāo)準(zhǔn)組件及事件處理47實(shí)驗(yàn)十三 Applet的編寫(xiě)48實(shí)驗(yàn)十三Java網(wǎng)絡(luò)編程技術(shù)52實(shí)驗(yàn)十五JDBC 數(shù)據(jù)庫(kù)編程55注:帶*為選做實(shí)驗(yàn)

2、第一部分 JAVA集成開(kāi)發(fā)環(huán)境Java不僅提供了一個(gè)豐富的語(yǔ)言和運(yùn)行環(huán)境,而且還提供了一個(gè)免費(fèi)的Java開(kāi)發(fā)工具集(JavaDevelopersKits,簡(jiǎn)稱(chēng)JDK)。編程人員和最終用戶可以利用這些工具來(lái)開(kāi)發(fā)java程序或調(diào)用Java內(nèi)容。通常我們以JDK(Sun所開(kāi)發(fā)的一套Java開(kāi)發(fā)工具)的版本來(lái)定義Java的版本。JDK1.0版于1996年初公開(kāi),JDK1.1版于1997年初公開(kāi),JDK1.2版于1998年底公開(kāi)?;谑袌?chǎng)行銷(xiāo)的考量,Sun在JDK1.2版公開(kāi)后旋即將Java改名為Java2,將JDK改名為Java2SoftwareDevelopmentKit(以下簡(jiǎn)稱(chēng)J2SDK)。J2

3、SDK(原稱(chēng)JDK)1.3于2000年4月公開(kāi),此版本仍稱(chēng)做Java2。目前J2SDK1.4.2版已經(jīng)發(fā)布并投入使用中,目前Java1.5測(cè)試版已發(fā)布。Java2出現(xiàn)后,將分成Java2PlatformEnterpriseEdition(簡(jiǎn)稱(chēng)J2EE)、Java2PlatformStandardEdition(簡(jiǎn)稱(chēng)J2SE)、Java2PlatformMicroEdition(簡(jiǎn)稱(chēng)J2ME)。J2EE適用于服務(wù)器,目前已經(jīng)成為企業(yè)運(yùn)算、電子商務(wù)等領(lǐng)域中相當(dāng)熱門(mén)的技術(shù);J2SE適用于一般的計(jì)算機(jī);J2ME適用于消費(fèi)性電子產(chǎn)品。除了這三者之外,JavaCard依然是獨(dú)立的一套標(biāo)準(zhǔn)。隨著應(yīng)用領(lǐng)域的不

4、同,Java有許多API(ApplicationProgrammingInterface),這些API分成三大類(lèi): JavaCoreAPI:由Sun制定的基本API,任何Java平臺(tái)都必須提供。 JavaStandardExtensionAPI(javax):由Sun制定的擴(kuò)充API,Java平臺(tái)可以選擇性地提供或加裝。 廠商或組織所提供的API:由各家公司或組織所提供。其中CoreAPI和StandardExtensionAPI已經(jīng)逐漸涵蓋了大部份的信息應(yīng)用領(lǐng)域,例如多媒體、數(shù)據(jù)庫(kù)、Web、企業(yè)運(yùn)算、語(yǔ)音、實(shí)時(shí)系統(tǒng)、網(wǎng)絡(luò)、電話、影像處理、加解密、GUI、分布式運(yùn)算.。如果你有某項(xiàng)需求尚未有標(biāo)

5、準(zhǔn)的JavaAPI可遵循,你可以向Sun提出制定新API的請(qǐng)求。經(jīng)過(guò)審核之后,你的要求可能會(huì)通過(guò)、駁回.等。如果通過(guò),就會(huì)開(kāi)始進(jìn)入制定API的程序。JavaAPI的制定過(guò)程因?yàn)楣_(kāi),J2EE、J2SE、J2ME及CoreAPI的關(guān)系見(jiàn)下圖 圖1.1 J2EE、J2SE、J2ME及CoreAPI的關(guān)系且經(jīng)過(guò)許多業(yè)界技術(shù)領(lǐng)先公司的共同參與,所以相當(dāng)完善而優(yōu)異。和Java標(biāo)準(zhǔn)相關(guān)的任何第一手資料,你都可以在取得。1.1 DOS環(huán)境Java2SDKSUN的Java不僅提了一個(gè)豐富的語(yǔ)言和運(yùn)行環(huán)境,而且還提了一個(gè)免費(fèi)的Java開(kāi)發(fā)工具集(JDK)。開(kāi)發(fā)人員和最終用戶可以利用這個(gè)工具來(lái)開(kāi)發(fā)java程序。J

6、DK簡(jiǎn)單易學(xué),可以通過(guò)任何文本編輯器(如:Windows 記事本、UltrEdit、Editplus、FrontPage以及dreamweaver等)編寫(xiě)Java源文件,然后在DOS狀況下利通過(guò)javac命令將Java源程序編譯成字節(jié)碼,通過(guò)Java命令來(lái)執(zhí)行編譯后的Java文件,這能帶給DOS時(shí)代程序員美好的回憶。Java 初學(xué)者一般都采用這種開(kāi)發(fā)工具。從初學(xué)者角度來(lái)看,采用JDK開(kāi)發(fā)Java程序能夠很快理解程序中各部分代碼之間的關(guān)系,有利于理解Java面向?qū)ο蟮脑O(shè)計(jì)思想。JDK的另一個(gè)顯著特點(diǎn)是隨著Java (J2EE、J2SE以及J2ME)版本的升級(jí)而升級(jí)。但它的缺點(diǎn)也是非常明顯的就是從

7、事大規(guī)模企業(yè)級(jí)Java應(yīng)用開(kāi)發(fā)非常困難,不能進(jìn)行復(fù)雜的Java軟件開(kāi)發(fā),也不利于團(tuán)體協(xié)同開(kāi)發(fā)。1.1.1 建立Java開(kāi)發(fā)環(huán)境(1)  下載JavaJDK.本書(shū)將使用目前最新的版本J2SE的Java2 J2SE 5.0(1.5.0)。可以通過(guò)IE或NetScape瀏覽器瀏覽網(wǎng)址:,根據(jù)提示可以下載支持MicrosoftWindows操作系統(tǒng)的JAVA2SDK.exe到本地硬盤(pán)或從CD復(fù)制到本地硬盤(pán). 安裝JavaJDK.J2SE1.5.0安裝界面從硬盤(pán)中或從光盤(pán)(如JAVAII光盤(pán))中運(yùn)行jdk-1_5_0-windows-i586.exe,根據(jù)提示可以選擇安裝文件夾如D:jdk1.

8、6.0,然后根據(jù)提示進(jìn)行安裝,如上圖。安裝完成后得到如下的文件和目錄結(jié)構(gòu)。 (圖1.3) jdk1.6.0的目錄結(jié)構(gòu)圖1.3是J2sdk1.6.0的目錄結(jié)構(gòu)。配置JavaSDK.Windows98/ME/XP:簡(jiǎn)單的方法就是選擇開(kāi)始運(yùn)行sysedit,這會(huì)顯示一個(gè)實(shí)用程序的界面。圖1.4 系統(tǒng)配置編輯器在這里可以設(shè)置環(huán)境變量.設(shè)置項(xiàng)目如下:修改autocexe.bat就是修改自動(dòng)批處理文件。添加:set PATH=jdk安裝目錄bin;%path%set CLASSPATH=.;jdk安裝目錄lib如set PATH=D:jdk1.6.0bin;%path%;set CLASSPATH=.;D

9、:jdk1.6.0jrelib;set JAVA_HOME=D:jdk1.6.0 /你安裝J2SE的目錄Windows2000操作系統(tǒng):打開(kāi)系統(tǒng)設(shè)置,按Winkey+Break或右擊“我的電腦”,選屬性,選擇高級(jí)->系統(tǒng)環(huán)境。同樣設(shè)置以上的系統(tǒng)環(huán)境變量.設(shè)置完JDK路徑后,任何地方皆可執(zhí)行Java原始程序代碼。其他操作系統(tǒng)的安裝和配置可以參考以上的系統(tǒng)環(huán)境變量進(jìn)行配置。1.1.2 JDK開(kāi)發(fā)環(huán)境中常用工具介紹下面將介紹一些主要Java工具的使用,在Java環(huán)境中的Java工具列表如下所示:*appletviewer 小應(yīng)用程序?yàn)g覽器*java 解釋器*javac 編譯器*javah 頭文

10、件生成器*javadocAPI 文檔生成器*javap 類(lèi)文件反匯編器*jdb Java語(yǔ)言調(diào)試器這些文件包括在d:jdk1.6.0bin目錄中,并可以在任何目錄中運(yùn)行,前提是你在設(shè)置運(yùn)行程序的系統(tǒng)中設(shè)置了路徑。1. javac編譯器Javac編譯器讀取Java源代碼,并將其編譯成字節(jié)代碼,調(diào)用Javac的命令行如下:d:user>javac options 表1.1 部分選項(xiàng)選項(xiàng)功能-classpathpath此選項(xiàng)用于設(shè)定路徑,在該路徑上Javac尋找需被調(diào)用的類(lèi)。該路徑是一個(gè)用分號(hào)分開(kāi)的目錄列表。-ddirectory此選項(xiàng)指定一個(gè)根目錄。該目錄用來(lái)創(chuàng)建反映軟件包繼承關(guān)系的目錄數(shù)。

11、-g此選項(xiàng)在代碼產(chǎn)生器中打開(kāi)調(diào)試表,以后可憑此調(diào)試產(chǎn)生字節(jié)代碼。-此選項(xiàng)告訴javac優(yōu)化由內(nèi)聯(lián)的static、final以及privite成員函數(shù)所產(chǎn)生的代碼。-verbose此選項(xiàng)告知Java顯示出有關(guān)被編譯的源文件和任何被調(diào)用類(lèi)庫(kù)的信息。 例如d:user>javac verbose JPrg.java將生產(chǎn)字節(jié)文件JPrg.class。值得注意的是,和Java解釋器不同,Javac編譯器期望它正在編譯的文件具有擴(kuò)展名.java。2. java解釋器Java解釋器可用來(lái)直接解釋執(zhí)行Java字節(jié)代碼,具體命令行格式如下:C:>java options className arg

12、umentsclassName必須包括所有軟件包信息。不僅有類(lèi)名本身,還有Java解釋器所期望的類(lèi)名(不是Java字節(jié)代碼的文件名),所有在解釋器環(huán)境下運(yùn)行的類(lèi)都必須包括解釋器第一次調(diào)用時(shí)所需的main成員函數(shù),用以傳遞命令所帶的變量。options包括了Java解釋器的所有選項(xiàng),如:-classpathpath此選項(xiàng)重寫(xiě)CLASSPATH環(huán)境變量,告訴Java在哪里能找到類(lèi)庫(kù)。如果其中用冒號(hào)分開(kāi),則可能包含多個(gè)目錄等。3. appletviewer小應(yīng)用程序?yàn)g覽器appletviewer提供了一個(gè)Java運(yùn)行環(huán)境,在其中可測(cè)試小應(yīng)用程Applet。appletviewer讀取包含小應(yīng)用程序的

13、HTML文件并在一個(gè)窗口中運(yùn)行它們。 其他工具詳見(jiàn)參考資料。12 小型集成視窗環(huán)境JCreator介紹JCreator 是一個(gè)Java程序開(kāi)發(fā)工具,也是一個(gè)Java集成開(kāi)發(fā)環(huán)境(IDE)。無(wú)論你是要開(kāi)發(fā)Java應(yīng)用程序或者網(wǎng)頁(yè)上的Applet元件都難不倒它。在功能上與Sun公司所公布的JDK等文字模式開(kāi)發(fā)工具相較之下來(lái)得容易,還允許使用者自訂義操作窗口界面及無(wú)限Undo/Redo等功能。JCreator為用戶提供了相當(dāng)強(qiáng)大的功能,例如項(xiàng)目管理功能,項(xiàng)目模板功能,可個(gè)性化設(shè)置語(yǔ)法高亮屬性、行數(shù)、類(lèi)瀏覽器、標(biāo)簽文檔、多功能編繹器,向?qū)Чδ芤约巴耆勺远x的用戶界面。通過(guò)JCreator,我們不用激

14、活主文檔而直接編繹或運(yùn)行我們的JAVA程序。JCreator能自動(dòng)找到包含主函數(shù)的文件或包含Applet的Html文件,然后它會(huì)運(yùn)行適當(dāng)?shù)墓ぞ?。在JCreator中,我們可以通過(guò)一個(gè)批處理同時(shí)編繹多個(gè)項(xiàng)目。JCreator的設(shè)計(jì)接近Windows界面風(fēng)格,用戶對(duì)它的界面比較熟悉。其最大特點(diǎn)是與我們機(jī)器中所裝的JDK完美結(jié)合,是其它任何一款I(lǐng)DE所不能比擬的。它是一種初學(xué)者很容易上手的Java開(kāi)發(fā)工具,缺點(diǎn)是只能進(jìn)行簡(jiǎn)單的程序開(kāi)發(fā),不能進(jìn)行企業(yè)J2EE的開(kāi)發(fā)應(yīng)用。圖1.5 集成的、可視化環(huán)境JCreatorJCreator依賴(lài)JDK,它與JDK完美結(jié)合,是其它任何一款I(lǐng)DE所不能比擬的。他只有1

15、.9M左右,由于依賴(lài)JDK. 須進(jìn)行配置才能運(yùn)行。 該軟件在這里只做簡(jiǎn)單介紹。下面一節(jié)介紹的Eclipse是我們實(shí)驗(yàn)使用的軟件平臺(tái),也是我們所推薦使用的。13大型集成開(kāi)發(fā)環(huán)境EclipseEclipse 是替代IBM Visual Age for Java(以下簡(jiǎn)稱(chēng)IVJ)的下一代IDE開(kāi)發(fā)環(huán)境,但它未來(lái)的目標(biāo)不僅僅是成為專(zhuān)門(mén)開(kāi)發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過(guò)開(kāi)發(fā)插件,它能擴(kuò)展到任何語(yǔ)言的開(kāi)發(fā),甚至能成為圖片繪制的工具。目前,Eclipse已經(jīng)開(kāi)始提供C語(yǔ)言開(kāi)發(fā)的功能插件。更難能可貴的是,Eclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼

16、,并且在此基礎(chǔ)上開(kāi)發(fā)自己的功能插件。也就是說(shuō)未來(lái)只要有人需要,就會(huì)有建立在Eclipse之上的COBOL,Perl,Python等語(yǔ)言的開(kāi)發(fā)插件出現(xiàn)。同時(shí)可以通過(guò)開(kāi)發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開(kāi)發(fā)環(huán)境中加入Tomcat服務(wù)器插件。可以無(wú)限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在。           可以這樣講Eclipse是目前用過(guò)的最好的,最智能化的Java開(kāi)發(fā)軟件。它是websphere的基礎(chǔ). Eclipse的最新版本是.x&#

17、160;.附帶有各種語(yǔ)言包中國(guó)的用戶可以從 上面下載eclipse的SdK,和中文語(yǔ)言包,解壓縮的同一個(gè)目錄下,就可以了。例如把它們解壓縮到d:Eclipse3目錄下。該軟件是一個(gè)綠色軟件,如果日后象刪除,就直接刪除這個(gè)目錄就可以了。在d:eclipse3目錄下,運(yùn)行eclipse.exe文件就可以啟動(dòng)。進(jìn)去后就是主界面, 如圖1.6。圖1.6 Eclipse界面雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java IDE 來(lái)使用,但 Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針

18、對(duì)希望擴(kuò)展 Eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于 Java 開(kāi)發(fā)工具。盡管 Eclipse 是使用 Java 語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C+、COBOL 和 Eiffel 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse 框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類(lèi)型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。下面舉一個(gè)簡(jiǎn)單的

19、例子,我們將創(chuàng)建并運(yùn)行一個(gè)“Hello, world”應(yīng)用程序。使用 Java 透視圖,右鍵單擊“Hello”項(xiàng)目,選擇 New=>Class,如下圖1.7 所示。在隨后出現(xiàn)的對(duì)話框中,鍵入“Hello”作為類(lèi)名稱(chēng)。在“Which method stubs would you like to create?”下面,選中“public static void main(String args)”復(fù)選框,然后按 Finish圖1.7 New Class定義這樣將在編輯器區(qū)域創(chuàng)建一個(gè)包含 Hello 類(lèi)和空的 main() 方法的 .java 文件,如下圖所示。然后向該方法添加如下代碼(注意其

20、中 i 的聲明是有意省略了的):圖1.8 編輯HelloWorld.java您會(huì)在鍵入時(shí)注意到 Eclipse 編輯器的一些特性,包括語(yǔ)法檢查和代碼自動(dòng)完成。當(dāng)您鍵入開(kāi)括號(hào)或雙引號(hào)時(shí),Eclipse 會(huì)自動(dòng)提供配對(duì)的符號(hào),并將光標(biāo)置于符號(hào)對(duì)之內(nèi)。 在其他情況下,您可以通過(guò)按 Ctrl-Space 來(lái)調(diào)用代碼自動(dòng)完成功能。代碼自動(dòng)完成提供了上下文敏感的建議列表,您可通過(guò)鍵盤(pán)或鼠標(biāo)來(lái)從列表中選擇。這些建議可以是針對(duì)某個(gè)特定對(duì)象的方法列表,也可以是基于不同的關(guān)鍵字(比如 for 或 while)來(lái)展開(kāi)的代碼片斷。語(yǔ)法檢查依賴(lài)增量編譯。每當(dāng)您保存代碼,它就在后臺(tái)接受編譯和語(yǔ)法檢查。默認(rèn)情況下,語(yǔ)法錯(cuò)誤

21、將以紅色下劃線顯示,一個(gè)帶白 “X” 的紅點(diǎn)將出現(xiàn)在左邊沿。其他錯(cuò)誤在編輯器的左邊沿通過(guò)燈泡狀的圖標(biāo)來(lái)指示;這些就是編輯器或許能為您修復(fù)的問(wèn)題即所謂的Quick Fix(快速修復(fù))特性。上面的代碼例子在 for 語(yǔ)句后面有一個(gè)燈泡狀圖標(biāo),因?yàn)?i 的聲明被省略了。雙擊該圖標(biāo)將調(diào)出建議的修復(fù)列表。在此例中,它將提供創(chuàng)建一個(gè)類(lèi)字段 i、一個(gè)局部變量 i 或一個(gè)方法參數(shù) i 的建議;單擊其中的每一個(gè)建議都會(huì)顯示將要生成的代碼。圖 4 顯示了該建議列表和建議創(chuàng)建一個(gè)局部變量之后生成的代碼。圖1.9編輯HelloWorld.java雙擊該建議就會(huì)把建議代碼插入到代碼中的恰當(dāng)位置。 一旦代碼無(wú)錯(cuò)誤地編譯完

22、成,您就能夠從 Eclipse 菜單上選擇 Run 來(lái)執(zhí)行該程序(注意這里不存在單獨(dú)的編譯步驟,因?yàn)榫幾g是在您保存代碼時(shí)進(jìn)行的。如果代碼沒(méi)有語(yǔ)法錯(cuò)誤,它就可以運(yùn)行了)。這時(shí)會(huì)出現(xiàn)一個(gè)具有適當(dāng)默認(rèn)設(shè)置的 Launch Configurations 對(duì)話框;請(qǐng)按右上角的 Run 按鈕。一個(gè)新的選項(xiàng)卡式窗格將出現(xiàn)在下面的窗格(控制臺(tái))中,其中顯示了程序的輸出,如圖1.10 所示。圖1.10 運(yùn)行HelloWorld也可以在 Java 調(diào)試器中運(yùn)行程序。首先雙擊編輯器視圖左端的灰色邊沿,從而在調(diào)用 System.out.println() 之后的 main() System.out.println()

23、 中設(shè)置一個(gè)斷點(diǎn)。一個(gè)藍(lán)色的點(diǎn)將會(huì)出現(xiàn)在那里。然后從 Run 菜單上選擇 Debug。正如上面描述的,這時(shí)會(huì)出現(xiàn)一個(gè) Launch Configurations 對(duì)話框。請(qǐng)選擇 Run。透視圖將自動(dòng)切換到 Debug 透視圖,其中具有許多有趣的新視圖,如圖1.11 所示:圖1.11 運(yùn)行Debug首先,請(qǐng)注意該透視圖左上角的 Debug 視圖。這個(gè)視圖顯示調(diào)用堆棧,并且標(biāo)題欄中有一個(gè)工具欄,它允許您控制程序的執(zhí)行,包括繼續(xù)、掛起或終止程序、跟蹤下一個(gè)語(yǔ)句、單步執(zhí)行下一個(gè)語(yǔ)句,或者從方法返回。右上角的窗格包含許多選項(xiàng)卡式的視圖,包括 Variables、Breakpoints、Expressio

24、ns 和 Display。這里我單擊了 Variables 視圖,以便我們能夠看到 i 的當(dāng)前值??梢酝ㄟ^(guò)上下文敏感的幫助,獲得關(guān)于這些視圖的更多信息:?jiǎn)螕粢晥D的標(biāo)題,然后按 F11.4 Java程序舉例Java程序分成兩類(lèi),即Application(應(yīng)用程序)和Applet(小程序)。應(yīng)用程序在計(jì)算機(jī)中單獨(dú)運(yùn)行,而小程序只能嵌在HTML網(wǎng)頁(yè)中運(yùn)行。這需要一些網(wǎng)頁(yè)知識(shí)。1.4.1簡(jiǎn)單的Java應(yīng)用程序下面我們先介紹簡(jiǎn)單的Java程序,并對(duì)其進(jìn)行分析。例1-1 文件HelloWorldApp.java如下:/ HelloWorldApp.javapublic class HelloWorldAp

25、p /anapplicationpublic static void main(String args)System.out.println(Hello World!);本程序的作用是輸出下面一行信息:Hello World!程序中,首先用保留字class來(lái)聲明一個(gè)新的類(lèi),其類(lèi)名為HelloWorldApp,它是一個(gè)公共類(lèi)(public)。整個(gè)類(lèi)定義由大括號(hào) 括起來(lái)。在該類(lèi)中定義了一個(gè)main()方法,其中public表示訪問(wèn)權(quán)限,指明所有的類(lèi)都可以使用這一方法;static指明該方法是一個(gè)類(lèi)方法,它可以通過(guò)類(lèi)名直接調(diào)用;void則指明main()方法不返回任何值。對(duì)于一個(gè)應(yīng)用程序來(lái)說(shuō),mai

26、n()方法是必需的,而且必須按照如上的格式來(lái)定義。Java解釋器在沒(méi)有生成任何實(shí)例的情況下,以main()作為入口來(lái)執(zhí)行程序。Java程序中可以定義多個(gè)類(lèi),每個(gè)類(lèi)中可以定義多個(gè)方法,但是最多只有有一個(gè)公共類(lèi),main()方法也只能有一個(gè),作為程序的入口。main()方法定義中的,括號(hào)()中的String args是傳遞給main()方法的參數(shù),參數(shù)名為args,它是類(lèi)String的一個(gè)實(shí)例,參數(shù)可以為0個(gè)或多個(gè),每個(gè)參數(shù)用“類(lèi)名參數(shù)名”來(lái)指定,多個(gè)參數(shù)間用逗號(hào)分隔。在main()方法的實(shí)現(xiàn)(大括號(hào)中),只有一條語(yǔ)句:System.out.println(Hello World!);它用來(lái)實(shí)現(xiàn)字

27、符串的輸出,這條語(yǔ)句實(shí)現(xiàn)與C語(yǔ)言中的printf語(yǔ)句和C+中cout<<語(yǔ)句相同的功能。另外,/后的內(nèi)容為注釋。現(xiàn)在我們可以運(yùn)行該程序。首先把它放到一個(gè)名為HelloWorldApp.java的文件中,這里,這文件名應(yīng)和類(lèi)名相同,因?yàn)镴ava解釋器要求公共類(lèi)必須放在與其同名的文件中。然后對(duì)它進(jìn)行編譯:d:userchap01>javac HelloWorldApp.java編譯的結(jié)果是生成字節(jié)碼文件HelloWorldApp.class。最后用java解釋器來(lái)運(yùn)行該字節(jié)碼文件:d:userchap01>java HelloWorldApp結(jié)果在屏幕上顯示HelloWor

28、ld!Java程序中有三種插入注釋的允許風(fēng)格:/ comment on one line/* comment on one or more line */* documenting comment */緊放在聲明(變量、方法或類(lèi)的聲明)之前的文檔注釋表明,注釋?xiě)?yīng)該被放在自動(dòng)生成的文檔中(由javadoc命令生成的HTML文件)以當(dāng)作對(duì)聲明項(xiàng)的描述。1.4.2簡(jiǎn)單的Applet小程序例1-2 / HelloWorldApplet.javaimport java.awt.*;import java.applet.*;public class HelloWorldApplet extends App

29、let /anappletpublic void paint(Graphics g)g.drawString(Hello World in Applet!,20,20);這是一個(gè)簡(jiǎn)單的Applet(小應(yīng)用程序)。程序中,首先用import語(yǔ)句輸入java.awt和java.applet下所有的包,使得該程序可能使用這些包中所定義的類(lèi),它類(lèi)似于C中的#include語(yǔ)句。然后聲明一個(gè)公共類(lèi)HelloWorldApplet,用extends指明它是Applet的子類(lèi)。在類(lèi)中,我們重寫(xiě)父類(lèi)Applet的paint()方法,其中參數(shù)g為Graphics類(lèi),它表明當(dāng)前作畫(huà)的上下文。在paint()方法中

30、,調(diào)用g的方法drawString(),在坐標(biāo)(20,20)處輸出字符串“HelloWorld!”,其中坐標(biāo)是用象素點(diǎn)來(lái)表示的。這個(gè)程序中沒(méi)有實(shí)現(xiàn)main()方法,這是Applet與應(yīng)用程序Application(如上例)的區(qū)別之一。為了運(yùn)行該程序,首先我們也要把它放在文件HelloWorldApplet.java中,然后對(duì)它進(jìn)行編譯:d:userchap01>javac HelloWorldApplet.java得到字節(jié)碼文件HelloWorldApplet.class。由于Applet中沒(méi)有main()方法作為Java解釋器的入口,我們必須編寫(xiě)HTML文件,把該Applet嵌入其中,

31、然后用appletviewer來(lái)運(yùn)行,或在支持Java的瀏覽器上運(yùn)行,如IE。它的<HTML>文件如下:<HTML><HEAD><TITLE>An Applet</TITLE></HEAD><BODY><applet code=”HelloWorldApplet.class”width=200 height=40></applet></BODY></HTML>其中用<applet>標(biāo)記來(lái)啟動(dòng)HelloWorldApplet.code指明字節(jié)碼所在的文件

32、,width和height指明applet所占的大小,我們把這個(gè)HTML文件存入Example.html,然后運(yùn)行:d:userchap01>appletviewer Example.html這時(shí)屏幕上彈出一個(gè)窗口,其中顯示Hello World in Applet!。或在IE瀏覽器中運(yùn)行(àBrowseàExample.htmlàOk)。從上述例子中可以看出,Java程序是由類(lèi)構(gòu)成的,對(duì)于一個(gè)應(yīng)用程序來(lái)說(shuō),必須有一個(gè)類(lèi)中定義main()方法,而對(duì)applet來(lái)說(shuō),它必須作為Applet的一個(gè)子類(lèi)。在類(lèi)的定義中,應(yīng)包含類(lèi)變量的聲明和類(lèi)中方法的實(shí)現(xiàn)。Java在

33、基本數(shù)據(jù)類(lèi)型、運(yùn)算符、表達(dá)式、控制語(yǔ)句等方面與C、C+基本上是相同的,但它同時(shí)也增加了一些新的內(nèi)容,在以后的各章中,我們會(huì)詳細(xì)介紹。本節(jié)中,只是使大家對(duì)Java程序有一個(gè)初步的了解。第二部分 Java程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)一 熟悉Java程序開(kāi)發(fā)環(huán)境一、實(shí)驗(yàn)?zāi)康?了解和使用J2sdk1.6.0(JDK)集成環(huán)境;2熟悉J2sdk集成環(huán)境的基本命令、功能和基本用法。并學(xué)會(huì)配置path 等環(huán)境變量;3學(xué)習(xí)并熟練掌握使用J2SDK環(huán)境進(jìn)Java程序開(kāi)發(fā)的全過(guò)程(包括:源程序的編輯、編譯、調(diào)試、運(yùn)行和結(jié)果查看);4了解和掌握J(rèn)CREATOR集成環(huán)境的安裝,簡(jiǎn)單應(yīng)用;5了解Java Application

34、和Applet程序的基本結(jié)構(gòu);6了解Java程序文件名和類(lèi)名的說(shuō)明方法。二、實(shí)驗(yàn)內(nèi)容與要求1.      安裝Jdk1.6.0集成環(huán)境,安裝成功后,配置path,classpath路徑,讓用戶在任何目錄下均可用到Java的系統(tǒng)資源。設(shè)置環(huán)境變量PATH和CLASSPATH(如果在autoexec.bat中沒(méi)有進(jìn)行設(shè)置)。進(jìn)入命令行(MS-DOS)方式,進(jìn)行如下設(shè)置:SET PATH=D:JDK1.6.0BIN;%PATH% SET CLASSPATH=.; %CLASSPATH%2.    &#

35、160;  安裝 Jdk 1.6.0 Doc, 并查看Jdk 1.6.0 Doc 文檔中,和課堂教學(xué)有關(guān)系的部分。在整個(gè)實(shí)驗(yàn)過(guò)程中都可以參考。3.       建立自己的工作目錄如d:user。以后的Java程序和過(guò)程文件均放置在此目錄下。4.       輸入一個(gè)Application源程序,學(xué)習(xí)編輯、編譯、運(yùn)行程序的方法。/例1-1 文件HelloWorldApp.java如下:/ HelloWorldApp.javapublic class HelloWorl

36、dApp public static void main(String args)System.out.println(Hello World!);本程序的作用是輸出下面一行信息:Hello World!現(xiàn)在我們可以運(yùn)行該程序。首先把它放到一個(gè)名為HelloWorldApp.java的文件中,這里,這文件名應(yīng)和類(lèi)名相同,因?yàn)镴ava解釋器要求公共類(lèi)必須放在與其同名的文件中。然后對(duì)它進(jìn)行編譯:d:user>javac HelloWorldApp.java編譯的結(jié)果是生成字節(jié)碼文件HelloWorldApp.class。最后用java解釋器來(lái)運(yùn)行該字節(jié)碼文件:d:user>java H

37、elloWorldApp結(jié)果在屏幕上顯示HelloWorld!5.      輸入一個(gè)applet源程序,學(xué)習(xí)編輯、編譯、運(yùn)行程序的方法。 簡(jiǎn)單的Applet小程序例1-2 / HelloWorldApplet.javaimport java.awt.*;import java.applet.*;public class HelloWorldApplet extends Applet /anappletpublic void paint(Graphics g)g.drawString(Hello World in Applet!,20

38、,20);這個(gè)程序中沒(méi)有實(shí)現(xiàn)main()方法,這是Applet與應(yīng)用程序Application(如上例)的區(qū)別之一。為了運(yùn)行該程序,首先我們也要把它放在文件HelloWorldApplet.java中,然后對(duì)它進(jìn)行編譯:d:user>javac HelloWorldApplet.java得到字節(jié)碼文件HelloWorldApplet.class。由于Applet中沒(méi)有main()方法作為Java解釋器的入口,我們必須編寫(xiě)HTML文件,把該Applet嵌入其中,然后用appletviewer來(lái)運(yùn)行,或在支持Java的瀏覽器上運(yùn)行,如IE。它的<HTML>文件如下:<HTM

39、L><HEAD><TITLE>An Applet</TITLE></HEAD><BODY><applet code=”HelloWorldApplet.class”width=200 height=40></applet></BODY></HTML>其中用<applet>標(biāo)記來(lái)啟動(dòng)HelloWorldApplet.code指明字節(jié)碼所在的文件,width和height指明applet所占的大小,把這個(gè)HTML文件存入Example.html,然后運(yùn)行:d:user>

40、;appletviewer Example.html這時(shí)屏幕上彈出一個(gè)窗口,其中顯示Hello World in Applet!。6安裝JCREATOR軟件,并配置JCREATOR,在JCREATOR中用建立工程的方式重新運(yùn)行上面的4、5小題。三、思考題1什么是Java虛擬機(jī)?它的作用是什么?2Java Application程序與Java Applet程序的不同之處有那些?請(qǐng)各位同學(xué)收集錯(cuò)誤代碼與提示信息,以及產(chǎn)生錯(cuò)誤的原因。3列舉出5種以上Java開(kāi)發(fā)平臺(tái),分析他們的優(yōu)缺點(diǎn)或特點(diǎn)。四、實(shí)驗(yàn)報(bào)告1、實(shí)驗(yàn)完成后,檢查是否達(dá)到試驗(yàn)?zāi)康摹?、編寫(xiě)實(shí)驗(yàn)報(bào)告(打印或手寫(xiě)均可),在下一次上實(shí)驗(yàn)課時(shí)提交。

41、3、評(píng)出成績(jī),按五級(jí)(A,B,C,D、E)評(píng)分。實(shí)驗(yàn)二Java基本數(shù)據(jù)類(lèi)型及運(yùn)算一、實(shí)驗(yàn)?zāi)康?. 理解Java語(yǔ)言的基本數(shù)據(jù)類(lèi)型的概念和數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換;2. 掌握常量、變量和各種表達(dá)式的用法;3. 掌握各種運(yùn)算符的優(yōu)先級(jí);4. 學(xué)會(huì)編寫(xiě)簡(jiǎn)單的Java程序。5把課堂上學(xué)到的理論用于實(shí)踐,并驗(yàn)證理論的正確性,和發(fā)現(xiàn)新的問(wèn)題.二、實(shí)驗(yàn)內(nèi)容與要求(一)實(shí)驗(yàn)要求1. 體會(huì)自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換用法;2. 給出算術(shù)表達(dá)式、關(guān)系表達(dá)式及布爾表達(dá)式的值,體會(huì)運(yùn)算符的優(yōu)先級(jí);3. 利用三目運(yùn)算符進(jìn)行編程;4. 進(jìn)行簡(jiǎn)單Java編程,能夠根據(jù)給出的三個(gè)變量值進(jìn)行求和及平均;5. 進(jìn)行簡(jiǎn)單Java編程,能夠

42、根據(jù)圓的半徑計(jì)算出圓的周長(zhǎng)及面積。(二)實(shí)驗(yàn)內(nèi)容1. 給出下面程序運(yùn)行結(jié)果,注意掌握自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換的用法。 / 定義變量 char c = 'a' byte b = 10; int i = 100; long l = 1000l; float f = 2.72f; double d = 3.14159; / 自動(dòng)類(lèi)型轉(zhuǎn)換 int ii = c + i; long ll = l - ii; float ff = f * b; double dd = ff / i + d; / 強(qiáng)制類(lèi)型轉(zhuǎn)換 byte bb = (byte)i; int iii = (int)ll; /

43、 顯示 System.out.println("ii=" + ii + ", ll=" + ll + ", ff=" + ff + ", dd=" + dd); System.out.println("bb=" + bb + ", iii=" + iii);根據(jù)運(yùn)行結(jié)果,請(qǐng)問(wèn):(1)哪些變量用到了自動(dòng)類(lèi)型轉(zhuǎn)換,哪些用到了強(qiáng)制類(lèi)型轉(zhuǎn)換?(2)強(qiáng)制類(lèi)型轉(zhuǎn)換可能會(huì)產(chǎn)生什么樣的問(wèn)題?(3)變量dd的結(jié)果和你預(yù)期的結(jié)果有什么樣的偏差,為什么?2. 給出下面程序的運(yùn)行結(jié)果。 int a

44、= 20, b = 3, c =4, d = 5; int value1,value2,value3; value1 = a + b+; value2 = a + +c; value3 = a+ + d; System.out.println("value1=" + value1 + ", value2=" + value2 + ", value3=" + value3); boolean x,y; x = !(c>d) | b*c>a && a>b; y = c=d && b>

45、c+d | a-b>c+d && !x; System.out.println("x=" + x + ", y=" + y);根據(jù)運(yùn)行結(jié)果,請(qǐng)問(wèn):(1)上面程序用到哪些運(yùn)算符,其優(yōu)先級(jí)如何?(2)“+”運(yùn)算符放到變量之后和之前有什么區(qū)別?(3)“a+ +b”、“a+b”和“a+ +b”一樣嗎,為什么?3. 用條件運(yùn)算符編寫(xiě)Java程序,取兩數(shù)之中較大的數(shù)及較小的數(shù),已知兩個(gè)數(shù)為10和5。4. 已知某學(xué)生三科考試成績(jī)分別為87、92和75分,試求此學(xué)生考試成績(jī)總和及平均分,要求平均分保留2位小數(shù)。5. 計(jì)算半徑為10的圓面積和周長(zhǎng)。注

46、意,的值使用Java 中的Math.PI。三、思考題1定義變量的作用是什么?2Java運(yùn)算符的優(yōu)先級(jí)與結(jié)合性是怎樣的?3&和&&有什么區(qū)別?4break,continue在流程控制中的作用。四、實(shí)驗(yàn)報(bào)告1、實(shí)驗(yàn)完成后,檢查是否達(dá)到試驗(yàn)?zāi)康摹?、編寫(xiě)實(shí)驗(yàn)報(bào)告(打印或手寫(xiě)均可),在下一次上實(shí)驗(yàn)課時(shí)提交。3、評(píng)出成績(jī),按五級(jí)(A,B,C,D、E)評(píng)分。實(shí)驗(yàn)三 流程控制語(yǔ)句一、實(shí)驗(yàn)?zāi)康?. 熟練掌握選擇結(jié)構(gòu)控制的程序設(shè)計(jì)方法;2. 熟練掌握循環(huán)結(jié)構(gòu)控制的程序設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容與要求(一)實(shí)驗(yàn)要求1. 理解if語(yǔ)句、ifelse語(yǔ)句在程序設(shè)計(jì)中的運(yùn)用;2. 學(xué)會(huì)switch語(yǔ)

47、句,if嵌套語(yǔ)句在多重選擇程序設(shè)計(jì)中的運(yùn)用;3. 理解while語(yǔ)句、dowhile語(yǔ)句和for語(yǔ)句實(shí)現(xiàn)循環(huán)的方法;4. 學(xué)會(huì)運(yùn)用while語(yǔ)句、dowhile語(yǔ)句和for語(yǔ)句實(shí)現(xiàn)循環(huán);5. 學(xué)會(huì)多重循環(huán)和循環(huán)嵌套語(yǔ)句的使用。(二)實(shí)驗(yàn)內(nèi)容1. 編程實(shí)現(xiàn)學(xué)生成績(jī)所在等級(jí),其中,成績(jī)大于等于90分為優(yōu)秀,大于等于80分為小于90分為良,大于等于60分小于80分為及格,小于60分為不及格。假設(shè)學(xué)生成績(jī)?yōu)?5分。2. 給出下面程序的運(yùn)行結(jié)果及實(shí)現(xiàn)的功能。/* Main.java */package experiment3;public class Main public static void ma

48、in(String args) int nowYear = 2009; int nowMonth = 3; if (args.length>0) nowYear = Integer.parseInt(args0); if (args.length>1) nowMonth = Integer.parseInt(args1); Question3_2 questionInstance = new Question3_2(); System.out.println(nowYear + "年" + nowMonth + "月有" + question

49、Instance.run(nowYear,nowMonth) + "天"); /* Question3_2.java */package experiment3;public class Question3_2 public int run(int year, int month) int days = -1; switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30

50、; break; case 2: if (year % 400 = 0 | (year % 4 = 0 && year % 100 != 0) days = 29; else days = 28; return days; 3. 給出下面程序的運(yùn)行結(jié)果和實(shí)現(xiàn)的功能。 System.out.println("輸出以下數(shù):"); for (int i=100; i<1000; i+) int a,b,c; a = i / 100; b = i / 10 % 10; c = i % 10; if (a*a*a+b*b*b+c*c*c=i) System.ou

51、t.println(i); 4. 編寫(xiě)Java程序,求1000以內(nèi)(包括1000)能被3整除或被5整除的所有整數(shù)之和。5. 編寫(xiě)Java程序,給出九九乘法表。三、實(shí)驗(yàn)報(bào)告1、實(shí)驗(yàn)完成后,檢查是否達(dá)到試驗(yàn)?zāi)康摹?、編寫(xiě)實(shí)驗(yàn)報(bào)告(打印或手寫(xiě)均可),在下一次上實(shí)驗(yàn)課時(shí)提交。3、評(píng)出成績(jī),按五級(jí)(A,B,C,D、E)評(píng)分。實(shí)驗(yàn)四 面向?qū)ο蟪绦蛟O(shè)計(jì)初步一、實(shí)驗(yàn)?zāi)康?. 掌握根類(lèi)Object的使用方法;2. 掌握類(lèi)描述類(lèi)Class的使用方法;3. 掌握系統(tǒng)類(lèi)System的使用方法;4. 掌握算術(shù)運(yùn)算類(lèi)Math的使用方法;5. 掌握String類(lèi)和StringBuffer類(lèi)的使用方法;6. 掌握日期類(lèi)Dat

52、e和日歷類(lèi)Calendar的使用方法。二、實(shí)驗(yàn)內(nèi)容與要求(一)實(shí)驗(yàn)要求1. 學(xué)會(huì)利用String類(lèi)分析和編寫(xiě)程序;2. 理解StringBuffer類(lèi)的用法;3. 學(xué)會(huì)分析Date類(lèi)和Calendar類(lèi)程序;4. 體會(huì)System類(lèi)的使用方法;5. 學(xué)會(huì)利用Math類(lèi)進(jìn)行編程。(二)實(shí)驗(yàn)內(nèi)容1. 分析運(yùn)行下面程序并給出程序結(jié)果,體會(huì)String類(lèi)的用法。package experiment10;public class Question10_3 public void run() String s1 = "Hello " String s2 = "World!&q

53、uot; System.out.println("字符串1長(zhǎng):" + s1.length(); System.out.println("字符串2長(zhǎng):" + s2.length(); System.out.println(s1.concat(s2);/連接字符串 String s3 = "Welcome " String s4 = "to java!" String s5 = s3 + s4; System.out.println(s5); String s6 = "Nice to meet you.&qu

54、ot; String s7 = "Nice to meet you." String s8 = new String("You are very nice. "); String s9 = new String("You are very nice. "); boolean c,d,e,f; c = s6 = s7;/s6和s7指向內(nèi)存中同一個(gè)存儲(chǔ)空間 d = s6.equals(s7); e = s8 = s9;/s8和s9是兩個(gè)不同的對(duì)象,在內(nèi)存中占用兩個(gè)不同的存儲(chǔ)空間,他們用“=”比較時(shí),兩者的值不相等; f = s8.equals(s9);/equal方法比較的是兩個(gè)變量的值; System.out.println(c + " " + d); System.out.println(e + " " + f); int i,j; i = pareTo(s7); j = pareTo(s9); System.out.println(i + " " + j); 2. 分析運(yùn)行下面程

溫馨提示

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