




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第2章章 Java程序開發(fā)運(yùn)行程序開發(fā)運(yùn)行環(huán)境環(huán)境本章主要內(nèi)容本章主要內(nèi)容:Java開發(fā)運(yùn)行環(huán)境的安裝Java簡單編程Java集成開發(fā)環(huán)境Eclipse和NetBeans的安裝與使用集成開發(fā)環(huán)境中的Java編程實(shí)例Java核心API文檔Java基本輸入輸出編程實(shí)例Java編程規(guī)范2.1 Java開發(fā)運(yùn)行環(huán)境安裝 Java的開發(fā)運(yùn)行環(huán)境有JDK和JRE(Java Runtime Environment)兩種,二者均包含有Java虛擬機(jī)。JDK是面向Java開發(fā)人員提供的開發(fā)運(yùn)行環(huán)境,包括類庫(Java API)和編譯程序等;JRE面向廣大的Java程序的使用者。JDK有多種版本,本書選用目前最
2、新版本,并選用標(biāo)準(zhǔn)版V。不同的操作系統(tǒng)平臺下,JDK都有相應(yīng)的版本,同時還有64位版和32位版之分。本書則以32位版為例,介紹下載、安裝以及使用。建立Java開發(fā)運(yùn)行環(huán)境的過程包括軟件下載、軟件安裝、環(huán)境變量設(shè)置和編程測試。下載安裝JDK軟件之前,需要做好文件夾使用計劃,使軟件、文檔與源程序等存放有序,便于有效地管理和使用。本書假設(shè)使用的操作系統(tǒng)平臺是Windows,這種情況下則在特定邏輯磁盤(例如E盤)的根文件夾下建立文件夾“JavaDev”,并在此文件夾下建立“10 Downloads”文件夾用于存放下載的軟件,建立“20 Doc”文件夾用于存放各種文檔資料,建立“30 Ja
3、vaSrc”文件夾用于存放編寫的程序等等,參見圖2-1。 需要注意的是,有些版本的操作系統(tǒng)不支持文件夾名中包含空格,這時如果創(chuàng)建文件夾則需要去除空格。使用數(shù)字開始的文件夾名是為了保證文件夾的顯示順序。2.1 Java開發(fā)運(yùn)行環(huán)境安裝圖2-1 Java編程開發(fā)文件夾使用計劃2.1 Java開發(fā)運(yùn)行環(huán)境安裝 Java平臺有標(biāo)準(zhǔn)版(Java SE)和企業(yè)版(Java EE)之分。通??梢赃x擇標(biāo)準(zhǔn)版,但是對于軟件開發(fā)者來說企業(yè)版是必要的,可以應(yīng)對各種各樣的應(yīng)用需求。實(shí)際上,集成開發(fā)環(huán)境往往提供包含有Java EE的版本。 本章介紹的軟件安裝有關(guān)的內(nèi)容是在64位版Window7操作系統(tǒng)下進(jìn)行的,安裝的軟
4、件均為32位版。同時,所有軟件采用缺省路徑安裝。如果使用不同版本的操作系統(tǒng),或指定路徑安裝軟件,那么選擇或輸入路徑時,路徑名會有所不同。安裝軟件時,應(yīng)該根據(jù)需要和實(shí)際情況進(jìn)行必要的調(diào)整,而不是照抄本節(jié)。例如,由于在64位版的Window7下缺省安裝32版的軟件,安裝軟件的文件夾為“C:Program Files (x86)Java”(64位版JDK安裝目錄為“C:Program FilesJava”),每個人實(shí)際情況也許會有所不同,但是安裝過程基本相同。2.1.1 下載下載JDK 通常從官方網(wǎng)站(Oracle Technology Network)下載JDK,下載的URL是:http:/ Do
5、wnloads”文件夾中,版本是1.7,文件名是“jdk-7u5-windows-i586.exe”。2.1 Java開發(fā)運(yùn)行環(huán)境安裝2.1.2 安裝安裝JDK 用鼠標(biāo)雙擊“10 Downloads”文件夾中的安裝文件“jdk-7u5-windows-i586.exe”則執(zhí)行安裝程序,則顯示圖2-2界面,單擊【下一步】按鈕則顯示圖2-3對話框,再次單擊【下一步】按鈕則顯示圖2-4對話框。 在圖2-3或圖2-4對話框中,可以按缺省路徑安裝JDK;也可以選擇更改JDK安裝路徑,單擊【更改】按則顯示圖2-5對話框,這時可以在文件夾名稱欄中輸入指定的安裝路徑,然后點(diǎn)擊【確定】按鈕設(shè)置安裝路徑并返回到上
6、一界面。圖2-2 JDK安裝(一)圖2-3 JDK安裝(二)2.1 Java開發(fā)運(yùn)行環(huán)境安裝 在圖2-4對話框中,單擊【下一步】按鈕則開始安裝JDK。至此JDK安裝已經(jīng)完成,同時顯示圖2-6對話框,單擊【繼續(xù)】按鈕則繼續(xù)安裝JavaFX。至此即使不安裝JavaFX也可以開發(fā)和運(yùn)行Java程序。之后的安裝過程不做詳細(xì)介紹。 JavaFX可以用于開發(fā)富客戶端的Web應(yīng)用軟件,JavaFX script是一種腳本語言,有關(guān)詳細(xì)內(nèi)容參照相關(guān)資料。如果不做JavaFX有關(guān)的應(yīng)用開發(fā)的話,則不需要安裝JavaFX。圖2-4 JDK安裝(三)圖2-5 JDK安裝(四)2.1 Java開發(fā)運(yùn)行環(huán)境安裝圖2-6
7、 JDK安裝(五)2.1 Java開發(fā)運(yùn)行環(huán)境安裝 安裝過程中,JDK安裝文件夾是“C:Program Files (x86)Javajdk1.7.0_05”。以下介紹若干最主要的可執(zhí)行程序的功能,這些程序在bin文件夾中。 1. javac.exe:Java語言編譯器,用于編譯Java語言源程序(擴(kuò)展名為.java)為字節(jié)碼(擴(kuò)展名為.class)文件。 2. java.exe:Java語言解釋器,用于執(zhí)行Java字節(jié)碼文件。 3. javadoc.exe:Java語言文檔生成器,用于將Java語言源程序中的注釋提取成(HTML, HyperText Markup Language)超文本語
8、言格式的文檔。 由于以上介紹的是缺省安裝,各個對話框中的內(nèi)容以及選項就不做詳細(xì)介紹。有必要的話,可以根據(jù)實(shí)際編程或軟件開發(fā)的需要,調(diào)整有關(guān)選項。2.1.3 配置環(huán)境變量配置環(huán)境變量 JDK安裝完成之后,還需要配置相關(guān)的環(huán)境變量才能保證Java程序的編譯和運(yùn)行能夠正常進(jìn)行。需要設(shè)置的環(huán)境變量有PATH和CLASSPATH,有了環(huán)境變量PATH,操作系統(tǒng)命令才能夠找到Java的編譯和運(yùn)行程序;有了環(huán)境變量CLASSPATH,Java虛擬機(jī)才能夠通過該環(huán)境變量指定的路徑,找到程序中用到的加載類。 設(shè)置環(huán)境變量時,通常設(shè)置環(huán)境變量JAVA_HOME為JDK安裝的文件夾。這樣做的好處在于,即使JDK安裝
9、文件夾發(fā)生變化,也只需要修改該環(huán)境變量,Java軟件就可以正常運(yùn)行。同時,設(shè)置其他環(huán)境變量時可以使用環(huán)境變量JAVA_HOME,使得路徑設(shè)置變得相對簡潔。 由于JDK安裝文件夾是“C:Program Files (x86)Javajdk1.7.0_05”,于是設(shè)置JAVA_HOME的值為該文件夾,設(shè)置PATH的值為“C:Program Files (x86)Javajdk1.7.0_05bin”,設(shè)置CLASSPATH的值為“C:Program Files (x86)Javajdk1.7.0_05lib”。雖然不同的Windows操作系統(tǒng)版本的環(huán)境變量的設(shè)置會有所不同,但是其過程基本相同。 2
10、.1 Java開發(fā)運(yùn)行環(huán)境安裝2.1 Java開發(fā)運(yùn)行環(huán)境安裝 首先打開【控制面板】-【系統(tǒng)和安全】-【系統(tǒng)】-【高級系統(tǒng)設(shè)置】(系統(tǒng)屬性),則顯示圖2-7對話框。在圖2-7對話框中,單擊【高級】標(biāo)簽,再單擊【環(huán)境變量】則顯示圖2-8對話框。 設(shè)置環(huán)境變量有兩種,一是用戶變量;二是系統(tǒng)變量。如果設(shè)置系統(tǒng)變量則對所有的用戶有效,如果設(shè)置用戶變量則只對當(dāng)前用戶有效。如果系統(tǒng)需要安裝多種版本的JDK則選擇設(shè)置用戶變量比較合適。因?yàn)椴徽撌窃O(shè)置用戶變量還是系統(tǒng)變量,操作過程都一樣,這里以設(shè)置用戶變量為例加以介紹。圖2-7 系統(tǒng)屬性 2.1 Java開發(fā)運(yùn)行環(huán)境安裝 在圖2-8對話框中,單擊【新建】按鈕則
11、顯示圖2-9對話框,變量名輸入“JAVA_HOME”,變量值輸入“C:Program Files (x86)Javajdk1.7.0_05”,再單擊【確定】按鈕,完成該環(huán)境變量的設(shè)置。環(huán)境變量JAVA_HOME設(shè)置完成之后, 環(huán)境變量PATH和CLASSPATH則可以使用JAVA_HOME來設(shè)置。圖2-8 環(huán)境變量圖2-9 新建用戶變量JAVA_HOME如圖2-10所示,采用同樣的方法設(shè)置環(huán)境變量PATH,變量名輸入“PATH”,變量值輸入“%JAVA_HOME%bin”,再單擊【確定】按鈕,完成環(huán)境變量PATH的設(shè)置。需要注意的是如果PATH變量已經(jīng)存在則使用編輯功能修改其值,在原有的值之后
12、加上分號(;)和新的變量值“%JAVA_HOME%bin”。2.1 Java開發(fā)運(yùn)行環(huán)境安裝圖2-10 新建用戶變量PATH如圖2-11所示,采用同樣的方法設(shè)置環(huán)境變量CLASSPATH,變量名輸入“CLASSPATH”,變量值輸入“.; %JAVA_HOME%lib”,注意不可以缺少“.”,否則Java程序執(zhí)行時會發(fā)生異常?!?”表示本地文件夾,放在前面會優(yōu)先在本地文件夾中查找有關(guān)文件。2.1 Java開發(fā)運(yùn)行環(huán)境安裝圖2-11 新建用戶變量CLASSPATH2.1 Java開發(fā)運(yùn)行環(huán)境安裝 環(huán)境變量設(shè)置完成之后,可以測試一下JDK安裝和環(huán)境變量設(shè)置是否成功。進(jìn)入DOS窗口,輸入如下兩個命令
13、: java -version javac -version 如果出現(xiàn)圖2-12內(nèi)容,說明JDK安裝和環(huán)境變量設(shè)置已經(jīng)成功。 環(huán)境變量是否設(shè)置成功,可以用DOS命令“PATH”、“SET”和“SET JAVA_HOME”等命令來驗(yàn)證。圖2-12 JDK安裝和環(huán)境變量設(shè)置的測試2.2 編寫運(yùn)行Java程序 現(xiàn)代軟件的開發(fā)幾乎都使用集成開發(fā)環(huán)境進(jìn)行編程和調(diào)試(debug),但是使用簡單的編輯器例如記事本等編輯程序,通過命令行(例如DOS命令窗口)編譯和運(yùn)行Java程序,也是學(xué)習(xí)編程過程中的一個必要的步驟。集成開發(fā)環(huán)境在實(shí)現(xiàn)復(fù)雜的功能時,往往是通過調(diào)用命令行程序來實(shí)現(xiàn)的。 Java程序有兩類,一是J
14、ava應(yīng)用程序(Java Application),可以獨(dú)立運(yùn)行;二是Java小程序(Java Applet),運(yùn)行于網(wǎng)頁中。早期的Web應(yīng)用軟件有用Java小程序來開發(fā)的,但是現(xiàn)在這種做法已經(jīng)十分罕見。 以下通過【例2-1】介紹用編輯器和命令行程序編寫執(zhí)行Java應(yīng)用程序的過程,通過【例2-2】介紹Java小程序的編程和應(yīng)用。通過這兩個例子可以知道,使用簡單的編輯器也可以進(jìn)行簡單的Java程序編程。 以下使用記事本編輯器來編寫Java程序。實(shí)際上,也可以選用免費(fèi)開源的屬性文本編輯器。屬性文本編輯器可以把Java等語言的關(guān)鍵字(或稱保留字)以高亮(或特定顏色)顯示,不同的語法成分也以不同的顏色
15、顯示,增強(qiáng)了程序可讀性。2.2 編寫運(yùn)行Java程序 【例2-1】編寫一個Java程序,輸出一行“Hello Java!”,同時輸出一行“這是我的第一個JAVA程序!”。1. 編輯程序如圖2-13所示,編輯Java源程序“Ex2_1_HelloJava.java”,源程序放在文件夾“E:JavaDev30 JavaSrc”中。本書為了節(jié)省篇幅,程序列表中略去文檔注釋以及空行。/* * * 程序名:Ex2_1_HelloJava.java * 編程人: 林福平 * 編程日期:2012-7-23 * 修改日期:2012-7-23 * */public class Ex2_1_HelloJava p
16、ublic static void main(String args) System.out.println(Hello, Java!);System.out.println(這是我的第一個JAVA程序!);2.2 編寫運(yùn)行Java程序2. 程序分析 類注釋(文檔注釋)用/* */括起來,給出了程序名、編程人、編程日期和修改日期的信息。需要注意一般注釋(非文檔注釋)用/* */括起來,也可以作為類注釋。 類名是Ex2_1_HelloJava,其修飾詞是public,聲明該類可以被任意的類引用。通常公用類名與容納該類的文件名是相同的,以便于Java虛擬機(jī)找到該文件并執(zhí)行相應(yīng)程序。 main()方
17、法:Java應(yīng)用程序中至少有一個main()方法,并且如程序中那樣進(jìn)行聲明,修飾詞有public和static,類型是void。Java程序是從指定的main()方法開始執(zhí)行的。 方法System.out.println()的功能是輸出一行字符串,其中System是Java系統(tǒng)內(nèi)部定義的一個系統(tǒng)類;out是System類的一個域或稱為對象成員;println()是out的方法,用于向系統(tǒng) 標(biāo)準(zhǔn)輸出設(shè)備輸出給定的字符串并換行。 3. 編譯運(yùn)行 進(jìn)入DOS窗口,將工作文件夾改為“E:JavaDev30 JavaSrc”。然后對Java程序“Ex2_1_HelloJava.java”進(jìn)行編譯生成文件
18、“Ex2_1_HelloJava.class”,可以用dir命令查看結(jié)果。最后,用Java程序執(zhí)行所編寫的Java應(yīng)用程序。2.2 編寫運(yùn)行Java程序 執(zhí)行以下的一系列命令后,得到的結(jié)果如圖2-14所示,其輸出結(jié)果與例2-1要求一致。其中DOS的“e:”命令是選擇邏輯磁盤e盤;“cd”命令式將工作文件夾改變?yōu)槠浜蠼o定的文件夾名;“dir”命令用于顯示當(dāng)前文件夾下的所有子文件夾和文件。圖2-14 Java應(yīng)用程序的編譯和運(yùn)行e:cd E:JavaDev30 JavaSrcjavac Ex2_1_HelloJava.javadirjava Ex2_1_HelloJava2.2 編寫運(yùn)行Java程
19、序 【例2-2】編寫一個Java小程序,輸出“第一個Java Applet程序!”。同時將該程序嵌入HTML文件中,通過瀏覽器解釋執(zhí)行該程序。1. 編輯程序如圖2-15所示,用記事本編輯Java源程序“E:JavaDev30 JavaSrc Ex2_2_FstApplet.java”。源程序如下:圖2-15 用記事本編輯Java源程序Ex2_2_FstApplet.javaimport java.awt.Graphics;import java.applet.Applet;public class Ex2_2_FstApplet extends Applet public void paint
20、(Graphics g) g.drawString(第一個Java Applet程序!, 10, 10);2.2 編寫運(yùn)行Java程序 編寫了Java小程序之后,為了能夠讓瀏覽器解釋執(zhí)行Java小程序,需要編寫相應(yīng)的HTML文件。如圖2-16所示,編輯HTML文件“E:JavaDev30 JavaSrc Ex2_2_FstApplet.html”。文件內(nèi)容如下: 圖2-16 用記事本編輯HTML文件Ex2_2_FstApplet.html2. 程序分析 先分析Java小程序如下: import語句用于引入包或類。程序中引入公用包的類,包括java.awt包中的Graphics類和java.ap
21、plet包中的Applet類。 主類Ex2_2_FstApplet繼承了Applet類(由關(guān)鍵字extends指定)。Applet小程序不能單獨(dú)運(yùn)行,可以在具有Java解釋器的瀏覽器中運(yùn)行。 Graphics是有關(guān)圖形的基類,相當(dāng)于一個圖形子窗口,可以在其中繪圖或顯示文字等,并嵌入到操作系統(tǒng)窗口或網(wǎng)頁中顯示。 Paint()方法是公共的,無返回類型,其參數(shù)是一個Graphics類。在該方法中編寫繪圖或顯示文字等的程序。 drawstring()方法用于將字符串對象輸出到窗口,坐標(biāo)是以左上角為原點(diǎn),坐標(biāo)單位是像素。程序中是將字符串顯示到(10, 10)的位置。 然后分析HTML文件:該文件是一個
22、最為簡單HTML文件,通過applet標(biāo)簽將Applet小程序嵌入HTML;瀏覽器遇到applet標(biāo)簽時執(zhí)行Java小程序,在瀏覽器頁面上顯示執(zhí)行的結(jié)果。2.2 編寫運(yùn)行Java程序2.2 編寫運(yùn)行Java程序3. 編譯運(yùn)行 如圖2-17所示,對Java小程序進(jìn)行編譯,則生成文件“Ex2_2_FstApplet.class”,使用的javac命令如下: javac Ex2_2_FstApplet.java 瀏覽器URL中輸入“E:JavaDev30 JavaSrcEx2_2_FstApplet.html”就可以看到該程序的運(yùn)行結(jié)果,如圖2-18。 圖2-17 Java小程序的編譯圖2-18 瀏
23、覽器中Java小程序的運(yùn)行結(jié)果2.3 Java集成開發(fā)環(huán)境 計算機(jī)編程以及軟件開發(fā)是一個復(fù)雜的過程,一般包括程序編輯、編譯、調(diào)試和運(yùn)行。程序出現(xiàn)邏輯錯誤需要修改時,尤其是大型程序往往難以通過閱讀程序判斷錯誤所在,一般采用設(shè)置斷點(diǎn)和單步執(zhí)行的方法,通過查看程序變量值進(jìn)行錯誤定位和修改錯誤。顯然,對于大型的程序,使用簡單的文本編輯器難以勝任編輯、編譯、調(diào)試和運(yùn)行的整個過程,尤其是調(diào)試和運(yùn)行。 集成開發(fā)環(huán)境包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具,集成了代碼編寫、分析、編譯、調(diào)試等一體化的功能,可以大幅提高編程以及軟件開發(fā)的效率。一般來說,集成開發(fā)環(huán)境不僅能夠開發(fā)Java語言程序,還能夠通過
24、增加插件開發(fā)多種語言程序。 本節(jié)介紹常用的Eclipse和NetBeans這兩種免費(fèi)開源的集成開發(fā)環(huán)境。2.3 Java集成開發(fā)環(huán)境2.3.1 Eclipse Eclipse 是一個免費(fèi)開源、基于Java的可擴(kuò)展開發(fā)平臺,可以通過插件(軟件組件)擴(kuò)展附加功能,能夠支持Java、C/C+(CDT)和PHP等語言的開發(fā)。Eclipse具有豐富的插件可以進(jìn)行各種各樣的開發(fā),并且能夠方便地得到這些插件并加入到Eclipse中。Eclipse支持Java語言程序開發(fā)中的項目管理、程序編輯、編譯、調(diào)試、運(yùn)行等操作。1. 下載 目前Eclipse的最新版本是4.2,按照用途的不同,有多種版本可以選擇,其官方
25、網(wǎng)站下載地址為:/downloads/packages/release/juno/r。 如果進(jìn)行Java軟件有關(guān)的開發(fā)則應(yīng)該選擇“Eclipse IDE for Java EE Developers”。但是作為一般的Java編程開發(fā),選擇下載32位版的“Eclipse IDE for Java Developers”。下載的文件放在指定文件夾中,其文件名是“eclipse-java-juno-win32.zip”。2.3 Java集成開發(fā)環(huán)境2. 安裝運(yùn)行 Eclipse是免安裝軟件,上述文件解壓縮后放在“E:JavaDev”文件夾下即可運(yùn)行。解壓縮后
26、會生成一個eclipse文件夾,同時還需要在“E:JavaDev”文件夾下建立workspace文件夾用于存放Java程序項目,如圖2-19所示。圖2-19 eclipse文件夾的內(nèi)容 雙擊eclipse文件夾中的可執(zhí)行文件eclipse.exe則開始運(yùn)行Eclipse,如圖2-20所示顯示初始運(yùn)行畫面,這時workspace指定為“E:JavaDevworkspace”,單擊【OK】按鈕進(jìn)入Eclipse主界面。圖2-20 Eclipse初始運(yùn)行界面2.3 Java集成開發(fā)環(huán)境圖2-21是Eclipse的主界面,這里不詳細(xì)介紹界面中的各個部分功能。圖2-21 eclipse主界面2.3 Ja
27、va集成開發(fā)環(huán)境2.3.2 Eclipse的的Java編程實(shí)例編程實(shí)例 本小節(jié)通過實(shí)例介紹使用集成開發(fā)環(huán)境Eclipse開發(fā)Java程序的過程以及相關(guān)的操作細(xì)節(jié)。 【例2-3】用Java語言編寫一個二維坐標(biāo)系中的矩形類。該類能夠計算矩形的周長、面積和對角線長,同時對于給定的坐標(biāo)點(diǎn)能夠判斷該點(diǎn)是否在該矩形內(nèi)。使用兩個坐標(biāo)點(diǎn)對矩形進(jìn)行初始化,或者使用兩個坐標(biāo)點(diǎn)的X和Y的值對矩形初始化。構(gòu)造一個測試類,用于計算矩形的周長、面積和對角線長等。 問題分析和解決方案:(1)使用矩形對角的兩個坐標(biāo)點(diǎn)表示矩形;(2)編寫一個坐標(biāo)點(diǎn)類;(3)矩形類中編寫3個方法分別用于計算周長、面積和對角線長;(4)數(shù)學(xué)計算時
28、使用Java庫函數(shù);(5)測試類中編寫main()方法,聲明一個矩形類的對象并初始化,計算該矩形的周長、面積和對角線長等。 運(yùn)行Eclipse并按照以下步驟編寫和調(diào)試運(yùn)行矩陣類有關(guān)的程序。2.3 Java集成開發(fā)環(huán)境1. 建立項目 在Eclipse的主界面中,選擇菜單【File】-【New】-【Java Project】則顯示圖2-22對話框。在該對話框中,項目名(Project name)中輸入“Ex2_3_Rectangle”(按照本書命名約定),JRE選擇JavaSE-1.7,然后點(diǎn)擊【Finish】按鈕。這時,在Eclipse主界面的“Package Explorer”子窗口中可以看到
29、該項目,打開它可以看到其下已經(jīng)有一個叫“src”的包。圖2-22 Eclipse建立項目2.3 Java集成開發(fā)環(huán)境2. 創(chuàng)建包 編程時所有Java的包都放在“src”之下。創(chuàng)建兩個包,一個包用于容納矩形類以及相關(guān)的類,另外一個包用于容納測試類。 用鼠標(biāo)右擊“src”,在彈出菜單中選擇【new】-【Package】顯示圖2-23對話框,name項中輸入包名“com.elephant.rectangle”,然后單擊【Finish】按鈕則創(chuàng)建了一個包。用同樣的方法創(chuàng)建另一個包“com.elephant.test”。 Java項目中的包,通常用來對大型程序中的各個組成部分按邏輯或功能進(jìn)行分類。例如公
30、用的類庫中有數(shù)學(xué)包Math,所以與數(shù)學(xué)計算有關(guān)的函數(shù)都納入其中。圖2-23 Eclipse創(chuàng)建包2.3 Java集成開發(fā)環(huán)境3. 創(chuàng)建類 鼠標(biāo)右擊包“com.elephant.rectangle”,在彈出菜單中選擇【new】-【Class】顯示圖2-24對話框,“name”項中輸入類名“Point”,然后單擊【Finish】按鈕則創(chuàng)建了一個坐標(biāo)點(diǎn)的類“Point”,容納該類的源程序是“Point.java”,生成的只是一個原型程序,需要進(jìn)一步編寫具體的程序。編寫的坐標(biāo)點(diǎn)的類“Point”的程序,參見后面的程序清單。程序中實(shí)現(xiàn)了構(gòu)造函數(shù)以及獲得X和Y坐標(biāo)的方法等。圖2-24 Eclipse創(chuàng)建類
31、2.3 Java集成開發(fā)環(huán)境 同樣創(chuàng)建矩形類“Rectangle”,容納該類的源程序是“Rectangle.java”。然后,詳細(xì)編寫該類的程序,參見后面的程序清單。其中實(shí)現(xiàn)了兩個構(gòu)造方法、計算周長的方法、計算面積的方法、計算對角線長的方法以及判定給定坐標(biāo)點(diǎn)是否在矩形內(nèi)的方法。 用Java語言編寫計算有關(guān)的程序時,應(yīng)該盡量使用現(xiàn)有的類庫。這樣可以提高編程效率,同時也可以減少人為的編程錯誤從而提高程序的正確性。例如計算絕對值時,使用函數(shù)“Math.abs()”,類“Math”中有大量的數(shù)學(xué)計算函數(shù)可以供編程時使用。 此外,在包“com.elephant.test”中編寫一個測試類“TestMai
32、n”,該類包含項目的開始執(zhí)行的“main”函數(shù)。其源程序名是“TestMain.java”,參見后面的程序清單。之所以使用兩個包,是因?yàn)檫@樣做能夠?qū)?shí)現(xiàn)矩形類的邏輯和使用矩形類的邏輯分開來,這樣使得程序邏輯清晰且易于理解。 2.3 Java集成開發(fā)環(huán)境源程序Point.java如下:package com.elephant.rectangle;public class Point double x, y;public Point(double x, double y) this.x = x; this.y = y; /* 類初始化時,創(chuàng)建一個原點(diǎn)實(shí)例 */public static Point
33、 origin = new Point(0, 0);/* 用+運(yùn)算符得到坐標(biāo)點(diǎn)的字符串 */ Overridepublic String toString() return ( + x + , + y + ); /* 獲得坐標(biāo)的X值 */public double getX() return x;/* 獲得坐標(biāo)的Y值 */public double getY() return y;2.3 Java集成開發(fā)環(huán)境源程序Rectangle.java如下:package com.elephant.rectangle;public class Rectangle Point point1, point2
34、;/* 構(gòu)造函數(shù)之一:用兩個坐標(biāo)點(diǎn)進(jìn)行矩陣的初始化 */public Rectangle(Point p1, Point p2) this.point1 = new Point(p1.getX(), p1.getY();this.point2 = new Point(p2.getX(), p2.getY();/* 構(gòu)造函數(shù)之二:用兩個坐標(biāo)點(diǎn)的值進(jìn)行矩陣的初始化 */public Rectangle(double x1, double y1, double x2, double y2) this.point1 = new Point(x1, y1);this.point2 = new Point
35、(x2, y2);2.3 Java集成開發(fā)環(huán)境/* 計算矩形的周長 */public double getCircumference() return 2 * Math.abs(point1.getX() - point2.getX()+ 2 * Math.abs(point1.getY() - point2.getY();/* 計算矩形的面積 */public double getArea() return Math.abs(point1.getX() - point2.getX()* Math.abs(point1.getY() - point2.getY();/* 計算矩形的對角線長 *
36、/public double getDiagonal() double width = Math.abs(point1.getX() - point2.getX();double height = Math.abs(point1.getY() - point2.getY();return Math.sqrt(width * width + height * height);2.3 Java集成開發(fā)環(huán)境/* 判定一個坐標(biāo)點(diǎn)是否在矩形之內(nèi) */public Boolean isInner(Point p) if(Math.min(point1.getX(), point2.getX() = p.g
37、etX() & (p.getX() = Math.max(point1.getX(), point2.getX()& (Math.min(point1.getY(), point2.getY() = p.getY()& (p.getY() = Math.max(point1.getY(), point2.getY()return true;elsereturn false;2.3 Java集成開發(fā)環(huán)境源程序TestMain.java如下:package com.elephant.test;import com.elephant.rectangle.Point;import com.elepha
38、nt.rectangle.Rectangle;public class TestMain public static void main(String args) Point p1 = new Point(-1, -1);Point p2 = new Point(2, 3);System.out.println(p1的坐標(biāo): + p1.toString();System.out.println(p2的坐標(biāo): + p2.toString();Rectangle r = new Rectangle(p1, p2);System.out.println(矩形的周長: + r.getCircumfer
39、ence();System.out.println(矩形的面積: + r.getArea();System.out.println(矩形的對角線長: + r.getDiagonal();if(r.isInner(Point.origin)System.out.println(原點(diǎn)在矩形中);2.3 Java集成開發(fā)環(huán)境Point p3 = new Point(-1.5, -1.5);if(r.isInner(p3)System.out.println(p3.toString() + 在矩形中);elseSystem.out.println(p3.toString() + 不在矩形中); 源程序
40、TestMain.java中用到不同包中的類時,需要用import語句引入。還可以通過修改該程序中的各個坐標(biāo)點(diǎn)值,計算不同矩形的周長、面積和對角線長等。4. 調(diào)試運(yùn)行 Eclipse中運(yùn)行編寫好的程序有多種方法,其一是鼠標(biāo)右擊項目“Ex2_3_Rectangle”,然后選擇彈出菜單【Run As】-【Java Application】;其二是先單擊項目“Ex2_3_Rectangle”,然后選擇菜單【Run】-【Run As】-【Java Application】;其三是調(diào)試運(yùn)行,選擇菜單【Run】-【Debug As】-【Java Application】;其四是選擇快捷鍵運(yùn)行或調(diào)試運(yùn)行程序
41、。運(yùn)行結(jié)果如下:2.3 Java集成開發(fā)環(huán)境p1的坐標(biāo):(-1.0,-1.0)p2的坐標(biāo):(2.0,3.0)矩形的周長:14.0矩形的面積:12.0矩形的對角線長:5.0原點(diǎn)在矩形中(-1.5,-1.5)不在矩形中 通常程序一次性編寫運(yùn)行成功的概率是比較低的。程序在調(diào)試運(yùn)行過程中首先要排除編譯錯誤即語法錯誤,Eclipse會實(shí)時指出程序的語法錯誤。其次是排除程序的邏輯錯誤,可以使用設(shè)置斷點(diǎn)、單步運(yùn)行、監(jiān)視變量值和調(diào)試運(yùn)行等手段。詳細(xì)的方法和過程請參考Eclipse的幫助文件或有關(guān)資料。 Java程序的執(zhí)行順序是從指定的main()方法開始執(zhí)行,main()方法中通常調(diào)用類實(shí)例(對象)的方法,方
42、法中繼續(xù)調(diào)用其他的方法等等,直到執(zhí)行完main()方法最后一個語句或出現(xiàn)異常中途結(jié)束程序的執(zhí)行。2.3 Java集成開發(fā)環(huán)境 Java應(yīng)用程序是從main()方法開始執(zhí)行的,所以至少要有一個main()方法,否則該程序無法被執(zhí)行(不知道從哪里開始執(zhí)行)。main()方法是包含在類中,所以有可能所有類中寫了若干個main()方法,這時則需要指定從哪個main()方法開始執(zhí)行,Eclipse具有指定由哪個main()方法開始執(zhí)行的功能。 使用Eclipse編寫Java程序,程序調(diào)試正確之后如果想將其生產(chǎn)exe程序的話,用的比較多的做法是安裝像fatjar插件,基于項目生成jar文件(可以用java
43、命令程序運(yùn)行它),然后再使用類似launch4j軟件從jar文件打包生成exe可執(zhí)行程序文件。2.3.3 NetBeans NetBeans是免費(fèi)開源的集成開發(fā)環(huán)境和應(yīng)用平臺,使用Java、PHP和C/C+等計算機(jī)語言可以開發(fā)桌面、移動和Web應(yīng)用程序等。NetBeans可以運(yùn)行于Windows、Mac、Linux和Solaris等操作系統(tǒng)平臺,同時也支持包括中文簡體和英文在內(nèi)的多國語言。NetBeans有豐富的插件可以擴(kuò)展其附加功能。2.3 Java集成開發(fā)環(huán)境1. 下載 目前NetBeans的最新版本是7.2,按照不同的用途有多種版本可以選擇,其官方網(wǎng)站下載地址為:http:/netbea
44、/downloads/index.html。進(jìn)行大型Java應(yīng)用軟件開發(fā)則應(yīng)該選擇“Java EE”版,一般的Java編程開發(fā)則可以選擇“Java SE”版。同時下載時選擇語言為“簡體中文”、平臺為“Windows”。下載的文件放在指定文件夾中,其文件名是“netbeans-7.2-ml-javase-windows.exe”。2. 安裝運(yùn)行 安裝NetBeans只需雙擊安裝文件“E:JavaDev netbeans-7.2-ml-javase-windows.exe”,這時顯示圖2-25對話框,單擊【下一步】按鈕顯示圖2-26對話框并選擇“我接受許可協(xié)議中的條款”,繼續(xù)單擊【下一
45、步】按鈕顯示圖2-27對話框。 在圖2-27對話框中,選擇“不安裝JUnit”,并單擊【下一步】按鈕顯示圖2-28對話框。 在圖2-28對話框中,選擇安裝文件夾和JDK。輸入或選擇適當(dāng)?shù)陌惭b位置,這里缺省安裝文件夾為“C:Program Files (x86)NetBeans 7.2”;輸入或選擇適當(dāng)?shù)腏DK的安裝文件夾,這里自動顯示之前的JDK安裝文件夾即“C:Program Files (x86)Javajdk1.7.0_05”。并且單擊【下一步】按鈕顯示圖2-29對話框。 在圖2-29對話框中,單擊【安裝】按鈕則開始安裝NetBeans軟件,安裝完畢后顯示圖2-30對話框。在圖2-309
46、對話框中,單擊【完成】按鈕則NetBeans軟件的安裝全部完成。2.3 Java集成開發(fā)環(huán)境 這時可以選擇操作系統(tǒng)【開始菜單】的“NetBeans IDE 7.2”,或者雙擊桌面的“NetBeans IDE 7.2”快捷圖標(biāo)啟動NetBeans。如果顯示圖2-31的NetBeans主界面則說明安裝已經(jīng)成功。圖2-25 NetBeans安裝(一)圖2-26 NetBeans安裝(二)2.3 Java集成開發(fā)環(huán)境圖2-27 NetBeans安裝(三)圖2-28 NetBeans安裝(四)2.3 Java集成開發(fā)環(huán)境圖2-29 NetBeans安裝(五)圖2-30 NetBeans安裝(六)2.3
47、Java集成開發(fā)環(huán)境圖2-31 NetBeans主畫面2.3 Java集成開發(fā)環(huán)境2.3.4 NetBeans的的Java編程實(shí)例編程實(shí)例 本小節(jié)通過實(shí)例介紹使用集成開發(fā)環(huán)境NetBeans開發(fā)Java程序的過程以及相關(guān)的操作細(xì)節(jié)。 【例2-4】用Java語言編寫一個二維坐標(biāo)系中的圓類。該類能夠計算圓的周長和面積,同時對于給定的坐標(biāo)點(diǎn)能夠判斷該點(diǎn)是否在該圓內(nèi)。使用一個坐標(biāo)點(diǎn)和半徑初始化圓。構(gòu)造一個測試類,用于計算圓的周長和面積等。 問題分析和解決方案:(1)使用一個坐標(biāo)點(diǎn)和半徑表示圓;(2)編寫一個坐標(biāo)點(diǎn)類;(3)圓類中編寫2個方法分別用于計算周長和面積;(4)數(shù)學(xué)計算時使用Java庫函數(shù);(
48、5)測試類中編寫main()方法,聲明一個圓類的對象并初始化,計算該圓的周長和面積等。 編寫Java程序前需要為NetBeans建立工作文件夾,以便統(tǒng)一管理開發(fā)項目。在文件夾“E:JavaDev”下,建立子文件夾“netbeansws”用于存放NetBeans的項目。 運(yùn)行NetBeans并按照以下步驟編寫和調(diào)試運(yùn)行矩陣類有關(guān)的程序。2.3 Java集成開發(fā)環(huán)境1. 建立項目 選擇菜單【文件】-【新建項目】則顯示圖2-32對話框。在該對話框中,“類別“選擇“Java”,“項目“選擇“Java應(yīng)用程序”,然后單擊【下一步】按鈕,顯示圖2-33對話框。圖2-32 NetBeans建立項目(一)圖2
49、-33 NetBeans建立項目(二)2.3 Java集成開發(fā)環(huán)境 在圖2-33對話框中,“項目名稱”輸入“Ex2_4_Circle”,“項目位置”選擇輸入“E:JavaDevnetbeansws”, “創(chuàng)建主類”選擇輸入“com.elephant.test.TestMain”,是包含包名的類名,然后單擊【完成】按鈕。這樣就建立了一個項目“Ex2_4_Circle”,該項目下有“源包”和“庫”。與此同時也創(chuàng)建了一個包“com.elephant.test”,在該包中建立了一個類“TestMain”,容納該類的源程序是“TestMain.java”。2. 創(chuàng)建包 用鼠標(biāo)右擊該項目下的源包,選擇菜單
50、【新建】-【Java包】則顯示圖2-34對話框。在該對話框中,“包名”輸入“com.elephant.circle”,然后單擊【完成】按鈕則創(chuàng)建了一個包。圖2-34 NetBeans創(chuàng)建包2.3 Java集成開發(fā)環(huán)境3. 創(chuàng)建類 需要在包“com.elephant.circle”中創(chuàng)建“Point”類和“Circle”類。鼠標(biāo)右擊包“com.elephant.circle”,選擇彈出菜單【新建】-【Java類】則顯示圖2-35對話框。在該對話框中,“類名”輸入“Point”,然后單擊【完成】按鈕則創(chuàng)建了“Point”類,容納該類的源程序是Point.java。該程序的代碼與【例2-3】中的同名
51、程序完全相同,拷貝粘貼即可。圖2-35 NetBeans創(chuàng)建類2.3 Java集成開發(fā)環(huán)境 用同樣的方法可以創(chuàng)建“Circle”類,納該類的源程序是Circle.java。編寫該源程序如下:package com.elephant.circle;public class Circle Point center; double radius; /* 構(gòu)造函數(shù):用圓心坐標(biāo)和半徑初始化 */ public Circle(Point p, double r) this.center = new Point(p.getX(), p.getY(); this.radius = r; /* 計算圓的周長 *
52、/ public double getPerimeter() return 2 * Math.PI * radius; /* 計算圓的面積 */ public double getArea() return Math.PI * radius * radius;2.3 Java集成開發(fā)環(huán)境/* 判定一個坐標(biāo)點(diǎn)是否在圓之內(nèi) */ public Boolean isInner(Point p) double deltaX = Math.abs(center.getX()-p.getX(); double deltaY = Math.abs(center.getY()-p.getY(); double
53、 distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);if(distance radius) return true; else return false;編寫測試類TestMain,源程序是TestMain.java,內(nèi)容如下:package com.elephant.test;import com.elephant.circle.Circle;import com.elephant.circle.Point;2.3 Java集成開發(fā)環(huán)境public class TestMain public static void main(St
54、ring args) Point p = new Point(1, 1); double r = 1.5;System.out.println(圓心的坐標(biāo): + p.toString(); Circle c = new Circle(p, r);System.out.println(圓的周長: + c.getPerimeter();System.out.println(圓的面積: + c.getArea();if(c.isInner(Point.origin) System.out.println(原點(diǎn)在圓中); Point p2 = new Point(-0.5, -0.5);if(c.is
55、Inner(p2) System.out.println(p2.toString() + 在圓中);elseSystem.out.println(p2.toString() + 不在圓中); 2.3 Java集成開發(fā)環(huán)境4. 調(diào)試運(yùn)行 集成開發(fā)環(huán)境Netbeans中運(yùn)行編寫好的程序有多種方法,這里不做詳細(xì)介紹。可以單擊快捷鍵【運(yùn)行項目】開始運(yùn)行程序,以下是程序運(yùn)行結(jié)果: 圓心的坐標(biāo):(1.0,1.0) 圓的周長:9.42477796076938 圓的面積:7.0685834705770345 原點(diǎn)在圓中 (-0.5,-0.5)不在圓中 同樣,Netbeans具有設(shè)置斷點(diǎn)、單步運(yùn)行、監(jiān)視變量值和
56、調(diào)試運(yùn)行等功能。詳細(xì)功能與用法參見有關(guān)資料或Netbeans的幫助文件。 2.3 Java集成開發(fā)環(huán)境2.4 Java核心文檔與學(xué)習(xí)資源 學(xué)習(xí)編寫程序過程中,會使用到許多類庫。程序員不必編寫與類庫相同功能程序,使用已有類庫中的功能,能夠提高編程效率。Java API(Application Programming Interface, API)是運(yùn)行庫的集合,充分了解其內(nèi)容和功能是十分必要的。本節(jié)同時也介紹了若干學(xué)習(xí)資源網(wǎng)站。2.4.1 Java核心核心API文檔文檔 JDK1.7版的Java核心API在線閱讀的URL為:http:/ 圖2-36 Java核心API文檔 這里簡單介紹該文檔的使
57、用,需要查找某個包的內(nèi)容,先單擊選擇欄中的“Packages”則在類選擇欄中顯示所有的類(“All Classes”),由于類是按字母順序顯示的,可以容易地找到想要查找的類。如果點(diǎn)擊選擇欄中的包名則在另外一個目錄窗口中顯示該包中包含的接口、類和例外處理類。 點(diǎn)擊類名時,主顯示窗口則會顯示該類有關(guān)的詳細(xì)文檔,包括類繼承關(guān)系、類變量和類方法等。 如果希望閱讀中文版的核心API文檔,則可以從網(wǎng)絡(luò)下載有關(guān)文檔,參見圖2-37。2.4 Java核心文檔與學(xué)習(xí)資源圖2-37 中文版Java核心API文檔2.4 Java核心文檔與學(xué)習(xí)資源2.4.2 Java學(xué)習(xí)資源學(xué)習(xí)資源 為了更好地學(xué)習(xí)和研究Java編程
58、以及Java有關(guān)的軟件開發(fā),還需要學(xué)會從網(wǎng)絡(luò)查找學(xué)習(xí)資源。一些網(wǎng)站提供了豐富的Java學(xué)習(xí)資源,介紹若干有關(guān)Java學(xué)習(xí)的網(wǎng)址如表2-1。表2-1 若干Java學(xué)習(xí)資源網(wǎng)站網(wǎng)站/網(wǎng)址名稱網(wǎng)址Java SE Technical Documentationhttp:/ Worldhttp:/ Java核心文檔與學(xué)習(xí)資源2.5 Java基本輸入輸出編程實(shí)例 一般而言,每個程序都會有輸入和輸出。一個沒有輸入的程序通常每次運(yùn)行總是輸出相同的結(jié)果,是沒有意義的。程序允許輸入數(shù)據(jù)才能實(shí)現(xiàn)各種計算,輸出不同的結(jié)果。計算機(jī)系統(tǒng)把不同的輸入源和輸出源(鍵盤、鼠標(biāo)、打印機(jī)、文件、網(wǎng)絡(luò)通信等)抽象為流(stream)
59、,用統(tǒng)一的接口來表示。Java語言也不例外,有兩種基本的流,分別是輸入流和輸出流。有關(guān)輸入輸出流的詳細(xì)內(nèi)容,請參見第9章。以下先簡要介紹輸入流和輸出流: 輸入流和輸出流都是有序的數(shù)據(jù)序列,可以是二進(jìn)制的數(shù)據(jù),也可以是編碼數(shù)據(jù)。Java語言中主要有字節(jié)流(Byte Stream)和字符流(Character Stream)兩種。主要用抽象類InputStream和OutputStream來處理字節(jié)流,用抽象類Reader和Writer來處理字符流。 根據(jù)用途的不同,還有一些擴(kuò)展的子類可以用來做特定的處理,請參看Java核心API文檔。這些類包括FileInputStream、FileOutput
60、Stream、FileReader和FileWriter等。 程序舉例如下: 【例2-5】編寫一個Java程序,按行讀入一個文本文件,取出介于用分隔符之間的連續(xù)的字符串作為單詞,將每個單詞作為一行輸出到一個文件中。 問題分析和解決方案:(1)打開一個文本文件,逐行讀入文本文件的內(nèi)容;(2)對每一行,使用分割字符串的函數(shù),從空白符處切割單詞;(3)忽略長度為0的單詞(空串);(4)將單詞按順序逐個輸出;(5)考慮文本文件的編碼;(6)輸入和輸出文件名通過命令行輸入。 本例是一個典型的文件處理應(yīng)用程序,將文件作為字符流輸入,程序計算結(jié)果作為字符流輸出到文本文件中。這是一個命令行處理程序,使用Ecl
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3D打印在STEM教育中的應(yīng)用-洞察闡釋
- 3D打印技術(shù)在集裝箱裝卸中的可持續(xù)發(fā)展應(yīng)用-洞察及研究
- 網(wǎng)紅養(yǎng)成計劃攻略
- 社區(qū)拉家?;顒佑媱?/a>
- 砌體年度進(jìn)度計劃
- 擬投入資源配備計劃
- 昆明市宜良縣衛(wèi)健系統(tǒng)招聘筆試真題2024
- 天津外國語大學(xué)濱海外事學(xué)院《兒童文學(xué)理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州華商職業(yè)學(xué)院《濕地動物學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南國防工業(yè)職業(yè)技術(shù)學(xué)院《居住區(qū)規(guī)劃及住宅設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年安全生產(chǎn)考試題庫:安全生產(chǎn)隱患排查治理安全教育培訓(xùn)試題
- 馬列原著選讀試題及答案
- 2025年大學(xué)生創(chuàng)業(yè)培訓(xùn)考試試卷及答案
- 2025江蘇鹽城燕舞集團(tuán)有限公司招聘58人筆試參考題庫附帶答案詳解析
- 上海韻達(dá)java面試題及答案
- T/CIQA 32-2022出入境生物安全消毒服務(wù)機(jī)構(gòu)質(zhì)量管理要求
- 電競店加盟合同協(xié)議書
- 6s安全管理考試試題及答案
- 【滇人版】《信息技術(shù)》四年級第4冊 第10.1課《設(shè)置動畫效果》課件
- 2025年天津市武清區(qū)等5地中考二模歷史試題(含答案)
- 2025年甘肅省平?jīng)鍪嗅轻紖^(qū)中考二模英語試題
評論
0/150
提交評論