版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 第 1 部分Java 基礎(chǔ)程序設(shè)計(jì)·Java 語言介紹·簡單的 Java 程序·Java 中的變量與數(shù)據(jù)類型·運(yùn)算符、表達(dá)式與語句·循環(huán)與選擇結(jié)構(gòu)·數(shù)組與方法的使用第1頁第1章認(rèn)識 Java1.1Java 的歷史Java 來自于 Sun 公司的一個叫 Green 的項(xiàng)目,其原先的目的是為家用電子消費(fèi)產(chǎn)品開發(fā)一個分布式代碼系統(tǒng),這樣就可以把 E-mail 發(fā)給電冰箱、電視機(jī)等家用電器,對它們進(jìn)行控制,和它們進(jìn)行信息交流。開始他們準(zhǔn)備采用 C+,但 C+太復(fù)雜,安全性差,最后基于 C+開發(fā)一種新語言 Oak(Java 的前身)。Oak
2、是一種用于網(wǎng)絡(luò)的精巧而安全的語言,Sun 公司曾以此投標(biāo)一個交互式電視項(xiàng)目,但結(jié)果被 SGI 打敗。于是 Oak 幾乎無家可歸,恰巧這時 Mark Ardreesen 開發(fā)的 Mosaic 和 Netscape 啟發(fā)了 Oak項(xiàng)目組成員,他們用 Java 編制了 HotJava 瀏覽器,得到了 Sun 公司首席執(zhí)行官 ScottMcNealy 的支持,觸發(fā)了 Java 進(jìn)軍 Internet。Java 技術(shù)是由美國 Sun 公司倡導(dǎo)和推出的,它包括 Java 語言和 Java Media APIS、Security APIs、Management APIs、Java Applet、Java R
3、MI、JavaBean、JavaOS、Java Servlet、JavaServer Page 以及 JDBC 等?,F(xiàn)把 Java 技術(shù)的發(fā)展歷程簡述如下:·1990 年,Sun 公司 James Gosling 領(lǐng)導(dǎo)的小組設(shè)計(jì)了一種平臺獨(dú)立的語言 Oak,主要用于為各種家用電器編寫程序。·1995 年 1 月,Oak 被改名為 Java;1995 年 5 月 23 日,Sun 公司在 Sun World 95上正式發(fā)布 Java 和 HotJava 瀏覽器。·1995 年 8 月至 12 月,Netscape 公司、Oracle 公司、Borland 公司、SG
4、I 公司、Adobe 公司、IBM 公司、AT&T 公司、Intel 公司獲得 Java 許可證。·1996 年 1 月,Sun 公司宣布成立新的業(yè)務(wù)部門JavaSoft 部,以開發(fā)、銷售并支持基于 Java 技術(shù)的產(chǎn)品,由 Alan Baratz 任總裁。同時推出 Java 開發(fā)工具包 JDK(Java Development Kit)1.0,為開發(fā)人員提供用來編制 Java 應(yīng)用軟件所需的工具。·1996 年 2 月,Sun 公司發(fā)布 Java 芯片系列,包括 PicoJava、MicroJava 和 UltraJava,并推出 Java 數(shù)據(jù)庫連接 JDBC(
5、Java Database Connectivity)。·1996 年 3 月,Sun 公司推出 Java WorkShop。第2頁·1996 年 4 月,Microsoft 公司、SCO 公司、蘋果電腦公司(Apple)、NEC 公司等獲得 Java 許可證。Sun 公司宣布允許蘋果電腦、HP、日立、IBM、Microsoft、Novell、SGI、SCO、Tamdem 等公司將 Java 平臺嵌入到其操作系統(tǒng)中。·1996 年 5 月,HP 公司、Sybase 公司獲得 Java 許可證。北方電訊公司宣布把 Java技術(shù)和 Java 微處理器應(yīng)用到其下一代電話
6、機(jī)中的計(jì)劃。5 月 29 日,Sun 公司在舊金山舉行第一屆 JavaOne 世界 Java 開發(fā)者大會,業(yè)界人士踴躍參加。Sun 公司在大會上推出一系列 Java 平臺新技術(shù)。·1996 年 8 月,JavaWorkShop 成為 Sun 公司通過互聯(lián)網(wǎng)提供的第一個產(chǎn)品。·1996 年 9 月,Addison-Wesley 和 Sun 公司推出 Java 虛擬機(jī)規(guī)范和 Java 類庫。·1996 年 10 月,德州儀器等公司獲得 Java 許可證。Sun 公司提前完成 JavaBean規(guī)范并發(fā)布,同時發(fā)布第一個 Java JIT(Just-In-Time)編譯器
7、,并打算在 JavaWorkShop 和 Solaris 操作系統(tǒng)中加入 JIT。10 月 29 日,Sun 公司發(fā)布 Java 企業(yè)計(jì)算技術(shù),包括 JavaStation 網(wǎng)絡(luò)計(jì)算機(jī)、65 家公司發(fā)布的 85 個 Java 產(chǎn)品及應(yīng)用、7 個新的 Java 培訓(xùn)課程及 Java 咨詢服務(wù)、基于 Java 的 Solstice 互聯(lián)網(wǎng)郵件軟件、新的 Java 開發(fā)者支持服務(wù)、HotJava Views 演示、Java Tutor、Java Card API等。Sun 公司宣布完成 Java Card API 規(guī)范,這是智能卡使用的第一個開放 API。Java Card 規(guī)范將把 Java 能力
8、賦予全世界億萬張智能卡。·1996 年 11 月,IBM 公司獲得 JavaOS 和 HotJava 許可證。Novell 公司獲得 JavaWorkShop 許可證。Sun 公司和 IBM 公司宣布雙方就提供 Java 化的商業(yè)解決方案達(dá)成一項(xiàng)廣泛協(xié)議,IBM 公司同意建立第一個 Java 檢驗(yàn)中心。·1996 年 12 月,Xerox 等公司獲得 Java 或 JavaOS 許可證。Sun 公司發(fā)布 JDK1.1、Java 商貿(mào)工具包、JavaBean 開發(fā)包及一系列 Java APIs;推出一個新的 JavaServer產(chǎn)品系列,其中包括 Java Web Serve
9、r、Java NC Server 和 JavaServer Toolkit。Sun公司發(fā)布 100%純 Java 計(jì)劃,得到百家公司的支持。·1997 年 1 月,SAS 等公司獲得 Java 許可證。Sun 公司交付完善的 JavaBean 開發(fā)包,這是在確定其規(guī)范后不到 8 個月內(nèi)完成的。·1997 年 2 月,Sun 公司和 ARM 公司宣布同意使 JavaOS 運(yùn)行在 ARM 公司的RISC 處理器架構(gòu)上。Informix 公司宣布在其 Universal Server 和其他數(shù)據(jù)庫產(chǎn)品上支持 JDK1.1。Netscape 公司宣布其 Netscape Commu
10、nicator 支持所有 Java第3頁化的應(yīng)用軟件和核心 API。·1997 年 3 月,HP 公司獲得 Java WorkShop 許可證,用于其 HP-UX 操作系統(tǒng)。西門子、AG 公司等獲得 Java 許可證。日立半導(dǎo)體公司、Informix 公司等獲得JavaOS 許可證。Novell 公司獲得 Java Studio 許可證。Sun 公司發(fā)售的 JavaOS 1.0操作系統(tǒng),這是一種在微處理器上運(yùn)行 Java 環(huán)境的最小、最快的方法,可提供給 JavaOS 許可證持有者使用。Sun 公司發(fā)售 HotJava Browser 1.0,這是一種 Java瀏覽器,可以方便地按需
11、編制專用的信息應(yīng)用軟件,如客戶自助臺和打上公司牌號的網(wǎng)絡(luò)應(yīng)用軟件。·1996 年 6 月,Sun 公司發(fā)布 JSP1.0,同時推出 JDK1.3 和 Java Web Server 2.0。·1999 年 11 月,Sun 公司發(fā)布 JSP1.1,同時推出 和 Java Servlet 2.2。·2000 年 9 月,Sun 公司發(fā)布 JSP1.2 和 Java Servlet 2.3 API。1.2Java 的現(xiàn)狀Java 是 Sun 公司推出的新一代面向?qū)ο蟪绦蛟O(shè)計(jì)語言,特別適于 Internet 應(yīng)用程序開發(fā),它的平臺無關(guān)性直接威脅到 Wintel 的壟斷地
12、位,這表現(xiàn)在以下幾個方面:· 計(jì)算機(jī)產(chǎn)業(yè)的許多大公司購買了 Java 許可證,包括 IBM、Apple、DEC、Adobe、SiliconGraphics、HP、Oracle、TOSHIBA 以及 Microsoft。這一點(diǎn)說明,Java 已得到了業(yè)界的認(rèn)可。·眾多的軟件開發(fā)商開始支持 Java 軟件產(chǎn)品。例如 Inprise 公司的 JBuilder、Sun公司自己做的 Java 開發(fā)環(huán)境 JDK 與 JRE。Sysbase 公司和 Oracle 公司均已支持HTML 和 Java。· Intranet 正在成為企業(yè)信息系統(tǒng)最佳的解決方案,而其中 Java 將發(fā)
13、揮不可替代的作用。Intranet 的目的是將 Internet 用于企業(yè)內(nèi)部的信息類型,它的優(yōu)點(diǎn)是便宜、易于使用和管理。用戶不管使用何種類型的機(jī)器和操作系統(tǒng),界面是統(tǒng)一的 Internet 瀏覽器,而數(shù)據(jù)庫、Web 頁面、Applet、Servlet、JSP 則存儲在 Web服務(wù)器上,無論是開發(fā)人員還是管理人員,或是用戶都可以受益于該解決方案。第4頁1.3Java 的特點(diǎn)Java 語言的優(yōu)點(diǎn)Java 語言是一種優(yōu)秀的編程語言。它最大的優(yōu)點(diǎn)就是與平臺無關(guān),在 Windows9x、Windows NT、Solaris、Linux、MacOS 以及其它平臺上,都可以使用相同的代碼?!耙淮尉帉?,到處
14、運(yùn)行”的特點(diǎn),使其在互聯(lián)網(wǎng)上被廣泛采用。由于 Java 語言的設(shè)計(jì)者們十分熟悉 C+語言,所以在設(shè)計(jì)時很好地借鑒了 C+語言??梢哉f,Java 語言是一種比 C+語言“還面向?qū)ο蟆钡囊环N編程語言。Java語言的語法結(jié)構(gòu)與 C+語言的語法結(jié)構(gòu)十分相似,這使得 C+程序員學(xué)習(xí) Java 語言更加容易。當(dāng)然,如果僅僅是對 C+改頭換面,那么就不會有今天的 Java 熱了。Java 語言提供的一些有用的新特性,使得使用 Java 語言比 C+語言更容易寫出“無錯代碼”。這些新特性包括:1、 提供了對內(nèi)存的自動管理,程序員無需在程序中進(jìn)行分配、釋放內(nèi)存,那些可怕的內(nèi)存分配錯誤不會再打擾設(shè)計(jì)者了;2、 去
15、除了 C+語言中的令人費(fèi)解、容易出錯的“指針”,用其它方法來進(jìn)行彌補(bǔ);3、 避免了賦值語句(如 a = 3)與邏輯運(yùn)算語句(如 a = = 3)的混淆;4、 取消了多重繼承這一復(fù)雜的概念。Java 語言的規(guī)范是公開的,可以在 上找到它,閱讀 Java 語言的規(guī)范是提高技術(shù)水平的好方法。Java 語言的關(guān)鍵特性Java 語言有許多有效的特性,吸引著程序員們,最主要的有以下幾個:第5頁1.簡潔有效Java 語言是一種相當(dāng)簡潔的“面向?qū)ο蟆背绦蛟O(shè)計(jì)語言。Java 語言省略了 C+語言中所有的難以理解、容易混淆的特性,例如頭文件、指針、結(jié)構(gòu)、單元、運(yùn)算符重載、虛擬基礎(chǔ)類等。它更加嚴(yán)謹(jǐn)、簡潔。2.可移植
16、性對于一個程序員而言,寫出來的程序如果不需修改就能夠同時在 Windows、MacOS、UNIX 等平臺上運(yùn)行,簡直就是美夢成真的好事!而 Java 語言就讓這個原本遙不可及的事已經(jīng)越來越近了。使用 Java 語言編寫的程序,只要做較少的修改,甚至有時根本不需修改就可以在不同平臺上運(yùn)行了。3.面向?qū)ο罂梢赃@么說,“面向?qū)ο蟆笔擒浖こ虒W(xué)的一次革命,大大提升了人類的軟件開發(fā)能力,是一個偉大的進(jìn)步,是軟件發(fā)展的一個重大的里程碑。在過去的 30 年間,“面向?qū)ο蟆庇辛碎L足的發(fā)展,充分體現(xiàn)了其自身的價值,到現(xiàn)在已經(jīng)形成了一個包含了“面向?qū)ο蟮南到y(tǒng)分析”、“面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)”、“面向?qū)ο蟮某绦蛟O(shè)計(jì)”的
17、完整體系。所以作為一種現(xiàn)代編程語言,是不能夠偏離這一方向的,Java 語言也不例外。4.解釋型Java 語言是一種解釋型語言,相對于 C/C+語言來說,用 Java 語言寫出來的程序效率低,執(zhí)行速度慢。但它正是通過在不同平臺上運(yùn)行 Java 解釋器,對 Java 代碼進(jìn)行解釋,來實(shí)現(xiàn)“一次編寫,到處運(yùn)行”的宏偉目標(biāo)的。為了達(dá)到目標(biāo),犧牲效率還是值得的,況且,現(xiàn)在的計(jì)算機(jī)技術(shù)日新月異,運(yùn)算速度也越來越快,用戶是不會感到太慢的。5.適合分布式計(jì)算Java 語言具有強(qiáng)大的、易于使用的聯(lián)網(wǎng)能力,非常適合開發(fā)分布式計(jì)算的程序。Java 應(yīng)用程序可以像訪問本地文件系統(tǒng)那樣通過 URL 訪問遠(yuǎn)程對象。使用
18、Java 語言編寫 Socket 通信程序十分簡單,使用它比使用任何其它語言都簡第6頁單。而且它還十分適用于公共網(wǎng)關(guān)接口(CGI)腳本的開發(fā),另外還可以使用 Java 小應(yīng)用程序(Applet)、Java 服務(wù)器頁面(Java Server Page,簡稱 JSP)、Servlet 等等手段來構(gòu)建更豐富的網(wǎng)頁。6.擁有較好的性能正如前面所述,由于 Java 是一種解釋型語言,所以它的執(zhí)行效率相對就會慢一些,但由于 Java 語言采用了兩種手段,使得其性能還是不錯的。A、 Java 語言源程序編寫完成后,先使用 Java 偽編譯器進(jìn)行偽編譯,將其轉(zhuǎn)換為中間碼(也稱為字節(jié)碼),再解釋;B、提供了一
19、種“準(zhǔn)實(shí)時”(Just-in-Time,JIT)編譯器,當(dāng)需要更快的速度時,可以使用 JIT 編譯器將字節(jié)碼轉(zhuǎn)換成機(jī)器碼,然后將其緩沖下來,這樣速度就會更快。7.健壯、防患于未然Java 語言在偽編譯時,做了許多早期潛在問題的檢查,并且在運(yùn)行時又做了一些相應(yīng)的檢查,可以說是一種最嚴(yán)格的 “編譯器”。它的這種“防患于未然”的手段將許多程序中的錯誤扼殺在搖藍(lán)之中。經(jīng)常有許多在其它語言中必須通過運(yùn)行才會暴露出來的錯誤,在編譯階段就被發(fā)現(xiàn)了。另外,在 Java 語言中還具備了許多保證程序穩(wěn)定、健壯的特性,有效地減少了錯誤,這樣使得 Java 應(yīng)用程序更加健壯。8.具有多線程處理能力線程,是一種輕量級進(jìn)
20、程,是現(xiàn)代程序設(shè)計(jì)中必不可少的一種特性。多線程處理能力使得程序能夠具有更好的交互性、實(shí)時性。Java 在多線程處理方面性能超群,具有讓設(shè)計(jì)者驚喜的強(qiáng)大功能,而且在 Java 語言中進(jìn)行多線程處理很簡單。9.具有較高的安全性由于 Java 語言在設(shè)計(jì)時,在安全性方面考慮很仔細(xì),做了許多探究,使得 Java語言成為目前最安全的一種程序設(shè)計(jì)語言。盡管 Sun 公司曾經(jīng)許諾過:“通過 Java 可以輕松構(gòu)建出防病毒、防黑客的系統(tǒng)”,但“世界上沒有絕對的安全”這一真理是不會因?yàn)槟橙说脑S諾而失靈驗(yàn)的。第7頁就在 JDK (Java Development Kit)1.0 發(fā)布不久后,美國 Princeto
21、n(普林斯頓)大學(xué)的一組安全專家發(fā)現(xiàn)了 Java 1.0 安全特性中的第一例錯誤。從此,Java 安全方面的問題開始被關(guān)注。不過至今所發(fā)現(xiàn)的安全隱患都很微不足道,而且 Java 開發(fā)組還宣稱,他們對系統(tǒng)安全方面的 Bugs 非常重視,會對這些被發(fā)現(xiàn)的 Bugs 立即進(jìn)行修復(fù)。而且由于 Sun 公司開放了 Java 解釋器的細(xì)節(jié),所以有助于通過各界力量,共同發(fā)現(xiàn)、防范、制止這些安全隱患。10.是一種動態(tài)語言Java 是一種動態(tài)的語言,這表現(xiàn)在以下兩個方面:A、 在 Java 語言中,可以簡單、直觀地查詢運(yùn)行時的信息;B、 可以將新代碼加入到一個正在運(yùn)行的程序中去。11.是一種中性結(jié)構(gòu)“Java
22、編譯器生成的是一種中性的對象文件格式。”也就是說,Java 編譯器通過偽編譯后,將生成一個與任何計(jì)算機(jī)體系統(tǒng)無關(guān)的“中性”的字節(jié)碼。這種中性結(jié)構(gòu)其實(shí)并不是 Java 首創(chuàng)的,在 Java 出現(xiàn)之前 UCSD Pascal 系統(tǒng)就已在一種商業(yè)產(chǎn)品中做到了這一點(diǎn),另外在 UCSD Pascal 之前也有這種方式的先例,在Niklaus Wirth 實(shí)現(xiàn)的 Pascal 語言中就采用了這種降低一些性能,換取更好的可移植性和通用性的方法。Java 的這種字節(jié)碼經(jīng)過了許多精心的設(shè)計(jì),使得其能夠很好地兼容于當(dāng)今大多數(shù)流行的計(jì)算機(jī)系統(tǒng),在任何機(jī)器上都易于解釋,易于動態(tài)翻譯成為機(jī)器代碼。1.4Java 虛擬機(jī)
23、(JVM)Java 虛擬機(jī)(JVM)是可運(yùn)行 Java 代碼的假想計(jì)算機(jī)。只要根據(jù) JVM 規(guī)范描述將解釋器移植到特定的計(jì)算機(jī)上,就能保證經(jīng)過編譯的任何 Java 代碼能夠在該系統(tǒng)上運(yùn)行。如圖 1-1 所示:第8頁圖 1-1Java 虛擬機(jī)從圖 1-1 中不難明白 JAVA 可以實(shí)現(xiàn)可移植性的原因,只要在操作系統(tǒng)上(WINNT、Linux、Unix)植入 JVM(Java 虛擬機(jī)),JAVA 程序就具有可移植性,也符合 SUN 公司提出的口號“Write Once, Run Anywhere”(“一次編寫,處處運(yùn)行”)。目前,Java 技術(shù)的架構(gòu)包括以下三個方面:J2EE (Java 2 Pl
24、atform Enterprise Edition) 企業(yè)版,是以企業(yè)為環(huán)境而開發(fā)應(yīng)用程序的解決方案。J2SE (Java 2 Platform Stand Edition) 標(biāo)準(zhǔn)版,是桌面開發(fā)和低端商務(wù)應(yīng)用的解決方案。J2ME (Java 2 Platform Micro Edition) 小型版,是致力于消費(fèi)產(chǎn)品和嵌入式設(shè)備的最佳解決方案。第9頁1.5JDK 的安裝及環(huán)境變量的配置要開發(fā) Java 程序首先必須要配置好環(huán)境變量,而 Java 的運(yùn)行環(huán)境的配置比較麻煩,相信有些讀者也會有這種體會,下面來看一下 JDK 的安裝過程。在這里 JDK 選用的是 版本。安裝分為兩個步驟:1、 首先要
25、準(zhǔn)備好 JDK 的安裝文件:j2sdk-1_4_0_03-windows-i586 ;2、 配置環(huán)境變量 path。先來看一下步驟一的安裝過程:圖 1-2啟動 JDK 安裝程序第10頁圖 1-3將安裝路徑設(shè)置為 c:j2sdk之后走默認(rèn)的安裝設(shè)置即可。從圖 1-1 可以看出,在編譯 Java 程序時需要用到 Javac 這個命令,執(zhí)行 Java 程序需要 java 這個命令,而這兩個命令并不是 windows 自帶的命令,所以使用它們的時候需要配置好環(huán)境變量,這樣就可以在任何的目錄下使用這兩個命令了。那么該如何設(shè)置環(huán)境變量呢?在我的電腦上點(diǎn)擊右鍵>選擇屬性>選擇高級>環(huán)境變量
26、>path。第11頁圖 1-4系統(tǒng)環(huán)境變量的配置在 path 后面加上 c:j2sdkbin;c:j2sdk 是安裝 JDK 的路徑,如果記不清楚了,可回去看一下圖 1-3。注意:在這里使用的是 windows 2000 操作系統(tǒng),至于其他的操作系統(tǒng),如 windows98在設(shè)置環(huán)境變量的時與 windows2000 的配置有許多不同,如果讀者感興趣,可以去查閱其他的資料。第12頁圖 1-5添加環(huán)境變量這樣就可以在任何目錄下使用 javac 和 java 這兩個命令了。1.6編寫第一個 Java 程序說了這么多,現(xiàn)在就自己來動手編寫一個 Java 的程序來親自感受一下 Java 語言的基
27、本形式。需要說明的是,JAVA 程序分為兩種形式:一種是網(wǎng)頁上使用的 Applet程序(Java 小程序),另一種是 Appliction 程序(即:Java 應(yīng)用程序),本書主要講解的是 Java Application 程序。第13頁范例:Hello.java01 public class Hello02 03 / 是程序的起點(diǎn),所有程序由此開始運(yùn)行04 public static void main(String args)05 06 / 此語句表示向屏幕上打印"Hello World !"字符串07 System.out.println("Hello Wo
28、rld !");08 09 將上面的程序保存為 HelloCareers.java 文件,并在命令行中輸入 javac Hello.java,沒有錯誤后輸入 java Hello。輸出結(jié)果:Hello World!程序說明:在所有的 Java Application 中,所有程序都是從 public static void main(String args),開始運(yùn)行的,剛接觸的讀者可能會覺得有些難記,在后面的章節(jié)中會詳細(xì)給讀者講解main 方法的各個組成部分。上面的程序如果暫時不明白也沒有關(guān)系,讀者只要將程序一點(diǎn)一點(diǎn)都敲下來,之后按照步驟編譯、執(zhí)行,就可以了,在這里只是讓讀者對 J
29、ava Application 程序有一個初步印象,因?yàn)橐院笏械膬?nèi)容講解的都將圍繞 Java Application 程序進(jìn)行。1.7classpath 的指定在 java 中可以使用 set classpath 命令指定 java 類的執(zhí)行路徑。下面通過一個實(shí)驗(yàn)來了解 classpath 的作用,假設(shè)這里的 Hello.class 類位于 c:盤下。第14頁在 D 盤下的命令行窗口執(zhí)行下面的指令:set classpath=c:之后在 D 盤根目錄下執(zhí)行:java Hello,如下圖所示:圖 1-6由上面的輸出結(jié)果可以發(fā)現(xiàn),雖然在 D 盤中并沒有 Hello.class 文件,但是卻也可以
30、用 java Hello 執(zhí)行 Hello.class 文件,之所以會有這種結(jié)果,就是因?yàn)樵?D 盤中使用set classpath 命令,將類的查找路徑指向了 C 盤,所以在運(yùn)行時,會從 C 盤下開始查找。小提示:可能有些讀者在按照上述的方法操作時,發(fā)現(xiàn)并不好用,這里要告訴讀者的是,在設(shè)置 classpath 時,最好將 classpath 指向當(dāng)前目錄,即:所有的 class 文件都從當(dāng)前文件夾中開始查找:set classpath=.第15頁·本章摘要:1、 Java 程序比較特殊,它必須先經(jīng)過編譯,然后再利用解釋的方式來運(yùn)行。2、 Byte-codes 最大的好處是可越平臺運(yùn)
31、行,可讓“一次編寫,處處運(yùn)行”成為可能。3、 使用 classpath 可以指定 class 的運(yùn)行路徑。第16頁第2章簡單的 Java 程序從本章開始,就要正式學(xué)習(xí) Java 語言的程序設(shè)計(jì),除了認(rèn)識程序的架構(gòu)外,本章還介紹了修飾符、關(guān)鍵字以及一些基本的數(shù)據(jù)類型。通過簡單的范例,讓讀者了解到檢測與提高程序可讀性的方法,以培養(yǎng)讀者正確的程序編寫觀念與習(xí)慣。2.1一個簡單的例子首先來看一個簡單的 Java 程序。在介紹程序的內(nèi)容之前,先簡單回顧一下第一章講解的例子,之后再來看下面這個程序,試試看是否看得出它是在做哪些事情!范例:TestJava2_1.java01 / TestJava2_1.j
32、ava,java 的簡單范例02 public class TestJava2_103 04 public static void main(String args)05 06 int num ; / 聲明一個整型變量 num07 num = 3 ; / 將整型變量賦值為 308 / 輸出字符串,這里用"+" 號連接變量09 System.out.println("這是數(shù)字 "+num);10 System.out.println("我有 "+num+" 本書!");11 12 輸出結(jié)果:這是數(shù)字 3我有 3 本書
33、!如果現(xiàn)在看不懂上面的這個程序也沒有關(guān)系,先將它敲進(jìn) Java 編輯器里,將它存盤、編輯、運(yùn)行,就可以看到上面的輸出結(jié)果。第17頁從上面的輸出結(jié)果中可以看出 System.out.println()的作用,就是輸出括號內(nèi)所包含的文字,至于 public、class、static、void 這些關(guān)鍵字的意思,將在以后的章節(jié)中再做更深入一層的探討。程序說明:1、 第 1 行為程序的注釋,Java 語言的注釋是以“/ /”標(biāo)志開始的,注釋有助于對程序的閱讀與檢測,被注釋的內(nèi)容在編譯時不會被執(zhí)行。2、 第 2 行 public class TestJava2_1 中的 public 與 class 是
34、 Java 的關(guān)鍵字,class 為“類”的意思,后面接上類名稱,在本程序中取名為 TestJava2_1。public 則是用來表示該類為公有,也就是在整個程序里都可以訪問到它。需要注意的是,如果將一個類聲明成 public,則也要將文件名稱取成和這個類一樣的名稱,如圖 2-1 所示。本例中的文件名為 TestJava2_1.java,而 public 之后所接的類名稱也為 TestJava2_1。也就是說,在一個 Java 文件里,最多只能有一個 public 類,否則.java 的文件便無法命名。圖 2-1如果將類聲明成 public,則也要將文件名稱取成和這個類一樣的名稱3、 第 4
35、行 public static void main(String args)為程序運(yùn)行的起點(diǎn)。第 410 行的功能類似于一般程序語言中的函數(shù)(function),但在 Java 中稱之為 method(方法)。因此 C 語言里的 main()函數(shù)(主函數(shù)),在 Java 中則被稱為 main() method(主方法)。4、 main() method 的主體(body)從第 5 行的左大括號“”到第 11 行的右大括號“”第18頁為止。每一個獨(dú)立的 Java 程序一定要有 main() method 才能運(yùn)行,因?yàn)樗浅绦蜷_始運(yùn)行的起點(diǎn)。5、 第 6 行“int num;”的目的是聲明 nu
36、m 為一個整數(shù)類型的變量。在使用變量之前必須先聲明其類型。6、 第 7 行“num=3;”為一賦值語句,即把整數(shù) 2 賦給存放整數(shù)的變量 num。7、 第 8 行的語句為:System.out.println("這是數(shù)字 "+num);程序運(yùn)行時會在顯示器上輸出引號(”)內(nèi)所包含的內(nèi)容。包括“這是數(shù)字”和整數(shù)變量 num 所存放的值兩部分內(nèi)容。8、 System.out 是指標(biāo)準(zhǔn)輸出,通常與計(jì)算機(jī)的接口設(shè)備有關(guān),如打印機(jī)、顯示器等。其后所續(xù)的文字 println,是由 print 與 line 所組成的,意思是將后面括號中的內(nèi)容打印在標(biāo)準(zhǔn)輸出設(shè)備顯示器上。因此第 8 行的語
37、句執(zhí)行完后會換行,也就是把光標(biāo)移到下一行的開頭繼續(xù)輸出。讀者可以把 System.out.println(),改成System.out.print(),看一下?lián)Q行與不換行的區(qū)別。9、 第 10 行的右大括號則告訴編譯器 main() method 到這兒結(jié)束。10、第 11 行的右大括號則告訴編譯器 class TestJava2_1 到這兒結(jié)束。這里只是簡單的介紹了一下 TestJava2_1 這個程序,相信讀者已經(jīng)對 Java 語言有了初步的了解。TestJava2_1 程序雖然很短,卻是一個相當(dāng)完整的 Java 程序!在后面的章節(jié)中,將會對 Java 語言的細(xì)節(jié)部分,做詳細(xì)的討論。2.2
38、簡單的 Java 程序解析本節(jié)將仔細(xì)探討 Java 語言的一些基本規(guī)則及用法。第19頁類(class)Java 程序是由類(class)所組成,至于類的概念在以后會有詳細(xì)講解,讀者只要先記住所有的 Java 程序都是由類組成的就可以了。下面的程序片段即為定義類的典型范例:public class Test/ 定義 public 類 Test上面的程序定義了一個新的 public 類 Test,這個類的原始程序的文件名稱應(yīng)取名為 Test.java。類 Test 的范圍由一對大括號所包含。public 是 Java 的關(guān)鍵字,指的是對于類的訪問方式為公有。需要讀者注意的是,由于 Java 程序是
39、由類所組成,因此在完整的 Java 程序里,至少需要有一個類。此外,本書曾在前面提到過在 Java 程序中,其原始程序的文件名不能隨意命名,必須和 public 類名稱一樣,因此在一個獨(dú)立的原始程序里,只能有一個 public 類,卻可以有許多 non-public 類。此外,若是在一個 Java 程序中沒有一個類是 public,那么該 Java 程序的文件名就可以隨意命名了。大括號、段及主體將類名稱定出之后,就可以開始編寫類的內(nèi)容。左大括號“”為類的主體開始標(biāo)記,而整個類的主體至右大括號“”結(jié)束。每個命令語句結(jié)束時,必須以分號“;”做結(jié)尾。當(dāng)某個命令的語句不只一行時,必須以一對大括號“”將
40、這些語句包括起來,形成一個程序段(segment)或是塊(block)。再以一個簡單的程序?yàn)槔齺碚f明什么是段與主體。若是暫時看不懂 TestJava2_2第20頁這個程序,也不用擔(dān)心,慢慢的都會講到該程序中所用到的命令。在下面的程序中,可以看到 main() method 的主體以左右大括號包圍起來;for 循環(huán)中的語句不只一行,所以使用左右大括號將屬于 for 循環(huán)的段內(nèi)容包圍起來;整個程序語句的內(nèi)容又被第 3與第 13 行的左右大括號包圍,這個塊屬于 public 類 TestJava2_2 所有。此外,應(yīng)該注意到每個語句結(jié)束時,都是以分號作為結(jié)尾。范例:TestJava2_2.java程
41、序運(yùn)行的起始點(diǎn) main() methodJava 程序是由一個或一個以上的類組合而成,程序起始的主體也是被包含在類之中。這個起始的地方稱為 main(),用左右大括號將屬于 main()段內(nèi)容包圍起來,稱之第21頁為 method(方法)。main()方法為程序的主方法,在一個 Java 程序中有且只能有一個 main()方法,它是程序運(yùn)行的開端,通??吹降?main() method 如下面的語句片段所示:public static void main(String args)/ main() method,主程序開始如前一節(jié)所述,main() method 之前必須加上 public s
42、tatic void 這三個標(biāo)識符。public 代表 main()公有的 method;static 表示 main()在沒有創(chuàng)建類對象的情況下,仍然可以被運(yùn)行;void 則表示 main()方法沒有返回值。Main 后的括號()中的參數(shù) String args表示運(yùn)行該程序時所需要的參數(shù),這是固定的用法,如果現(xiàn)在不了解也沒有關(guān)系,在以后的章節(jié)中會一一介紹。Java 程序的注釋為程序添加注釋可以用來解釋程序的某些語句的作用和功能,提高程序的可讀性。也可以使用注釋在原程序中插入設(shè)計(jì)者的個人信息。此外,還可以用程序注釋來暫時屏蔽某些程序語句,讓編譯器暫時不要處理這部分語句,等到需要處理的時候,只
43、需把注釋標(biāo)記取消就可以了,Java 里的注釋根據(jù)不同的用途分為三種類型:·單行注釋·多行注釋·文檔注釋單行注釋,就是在注釋內(nèi)容前面加雙斜線(/),Java 編譯器會忽略掉這部分信息。如下所示:int num ;/ 定義一個整數(shù)多行注釋,就是在注釋內(nèi)容前面以單斜線加一個星形標(biāo)記(/*)開頭,并在注釋內(nèi)容末尾以一個星形標(biāo)記加單斜線(*/)結(jié)束。當(dāng)注釋內(nèi)容超過一行時一般使用這種第22頁方法,如下所示:/*int c = 10 ;int x = 5 ;*/文檔注釋,是以單斜線加兩個星形標(biāo)記(/*)開頭,并以一個星形標(biāo)記加單斜線(*/)結(jié)束。用這種方法注釋的內(nèi)容會被解釋成程
44、序的正式文檔,并能包含進(jìn)如 javadoc之類的工具生成的文檔里,用以說明該程序的層次結(jié)構(gòu)及其方法。Java 中的標(biāo)識符Java 中的包、類、方法、參數(shù)和變量的名字,可由任意順序的大小寫字母、數(shù)字、下劃線(_)和美元符號($)組成,但標(biāo)識符不能以數(shù)字開頭,不能是 Java 中的保留關(guān)鍵字。·下面是合法的標(biāo)識符:yournameyour_name_yourname$yourname·下面是非法的標(biāo)識符:class67.9Hello Careers!小提示:一些剛接觸編程語言的讀者可能會覺得記住上面的規(guī)則很麻煩,所以在這里提醒讀者,標(biāo)識符最好永遠(yuǎn)用字母開頭,而且盡量不要包含其他
45、的符號。第23頁Java 的關(guān)鍵字和其他語言一樣,Java 中也有許多保留關(guān)鍵字,如 public、static 等,這些保留關(guān)鍵字不能當(dāng)作標(biāo)識符使用。下面列出了 Java 中的保留關(guān)鍵字,這些關(guān)鍵字并不需要讀者去強(qiáng)記,因?yàn)橐坏┦褂昧诉@些關(guān)鍵字做標(biāo)識符時,編輯器會自動提示錯誤。Java 中的保留關(guān)鍵字:abstractcharelseforinterfaceprivatebooleanclassextendiflongprotectedbreakcontinuefalseimplementnativepublicbytedefaultfinalimportnewreturncasedofinallyinstanceofnullshortcatchdoublefloatintpackagestaticsynchronized superthisthrowthrowstransienttruetryvoidvolatilewhile要特別注意的是,雖然 goto、const 在 Java 中并沒有任何意義,卻也是保留字,與其它的關(guān)鍵字一樣,在程序
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年大學(xué)口腔醫(yī)學(xué)專業(yè)大學(xué)物理下冊月考試題-附解析
- 桂電匯編實(shí)驗(yàn)報(bào)告
- 2022年大學(xué)化學(xué)專業(yè)大學(xué)物理下冊開學(xué)考試試卷B卷-附解析
- 2022年大學(xué)力學(xué)專業(yè)大學(xué)物理二期中考試試卷D卷-附解析
- 2022年大學(xué)藥學(xué)專業(yè)大學(xué)物理下冊開學(xué)考試試題A卷-含答案
- 年度重油催化裂化催化劑產(chǎn)業(yè)分析報(bào)告
- 超市照明節(jié)能改造方案
- 軌道交通施工安全整改方案
- 電力工程建設(shè)項(xiàng)目管理實(shí)施方案
- 倉庫安防監(jiān)控體系建設(shè)方案及長期維護(hù)
- 電力現(xiàn)貨市場基礎(chǔ)知識(課堂PPT)
- 掛牌儀式流程方案
- 電路分析教程第三版答案 燕慶明
- 四川省特種車輛警報(bào)器和標(biāo)志燈具申請表
- 20200310公園安全風(fēng)險(xiǎn)辨識清單
- 華中科技大學(xué)官方信紙
- 60立方油罐容積細(xì)表
- WI-QA-02-034A0 燈具成品檢驗(yàn)標(biāo)準(zhǔn)
- 農(nóng)業(yè)信息技術(shù) chapter5 地理信息系統(tǒng)
- 部編版六年級上語文閱讀技巧及解答
- 斯派克max操作手冊
評論
0/150
提交評論