官术网_书友最值得收藏!

1.5 第一個Java程序

安裝并配置完JDK之后,便可以開始編寫Java程序了。本節(jié)的目的并不在于講解Java語言的語法細節(jié),而是期望通過一個簡單的程序讓讀者對Java程序的編寫步驟有一個粗略的認識,同時闡述1.4節(jié)中配置的Classpath環(huán)境變量的作用。

編程之前,先請讀者思考一個問題—用什么樣的工具來編寫源文件?在學習C語言時一般采用Turbo C或Visual Studio等IDE。然而,IDE的使用并非必需,任何編程語言的源文件都是純文本格式的,因此,從理論上來說,僅僅采用簡單的純文本編輯工具(如Editplus、UltraEdit、Windows自帶的記事本等)就能編寫任何語言的源文件了。

初學者需要掌握Java編程的一些基本原理和細節(jié),而這些往往只有通過命令行的方式才能有較為深刻的理解,另一方面,很多IDE在某些操作和配置上也與這些原理和細節(jié)有著一定的聯(lián)系。因此,建議讀者在初學階段使用純文本編輯器來編寫Java程序,在理解了必要的原理和細節(jié)后再使用IDE,以提高開發(fā)效率推薦初學者使用Editplus,其免費并且支持行號顯示和語法高亮。IDE則推薦Eclipse,具體見附錄A。

接下來,我們開始編寫本書的第一個Java程序。

1.5.1 編輯源文件

在D盤下新建一個名為MyJavaSource的文件夾,以作為本書所有源文件的根目錄,然后在文本編輯器中輸入以下代碼為方便標識代碼,本書所有示例程序均在左側加了行號,行號不屬于源代碼的一部分。,并保存到MyJavaSource下名為HelloWorld.java的文件中。

            HelloWorld.java
            001  import java.lang.System;
            002
            003  public class HelloWorld{
            004     /*
            005      * 程序入口
            006      */
            007     public static void main(String[]args){
            008         System.out.println("神奇的Java之旅!");   // 在顯示器上輸出一行文字
            009     }
            010  }

保存文件時需要注意:

(1)Java源文件的文件名必須和代碼中class后的名稱嚴格一致(包括每個字母的大小寫,并且中間不能含空格),對于本例,文件名必須是HelloWorld。

(2).java是所有Java源文件的擴展名新建或重命名Java源文件時,為防止將“.java”作為文件名的一部分,應先讓操作系統(tǒng)顯示所有文件的擴展名(我的電腦→工具→文件夾選項→查看→高級設置:反選“隱藏已知文件類型的擴展名”并確定)。

HelloWorld.java雖然只有數(shù)行,但卻具有一個Java源文件的大部分如下特征。

(1)第1行表示程序引入了JDK類庫所提供的一個類,該類名為System,位于java.lang包下(包的概念將在第6章介紹)。

(2)第3行中的class表示定義的是一個類,類是Java程序的基本組成單元。class之后是類的名稱,類名后以一對花括號括起來的內(nèi)容稱為類體(第4~9行)。

(3)第3行中的public修飾了類的可見性,表示HelloWorld類是公共的。

(4)第4~6行中的“/*”與“*/”是塊注釋符號,用于注釋連續(xù)的多行;第8行中的“//”是單行注釋符號,用于注釋本行其后的內(nèi)容。注釋是對代碼的解釋和說明,一般放在要說明的代碼上邊或右邊。注釋是給人看的,編譯器不會解析它們,因此注釋可以是任何內(nèi)容。為代碼加上必要的注釋可以增加代碼的可理解性。

(5)第7行中的main是方法名稱,類似于C中的函數(shù)。方法位于類中,其后一對圓括號中的內(nèi)容是方法的形式參數(shù),圓括號后以一對花括號括起來的內(nèi)容稱為方法體(第8行)。方法體中可以包含語句,每條語句均以分號結尾。

(6)main方法是Java獨立應用程序的入口,程序總是從main方法開始執(zhí)行。一個Java獨立應用程序有且僅有一個名為main的方法。

(7)第8行中,System是第1行所引入的類的名字;out是System類中的一個靜態(tài)字段的名字,其類型是PrintStream(打印流,同樣是JDK提供的類);println是PrintStream類所具有的一個方法的名字,其功能是向標準輸出流(此處為命令行窗口)打印一些內(nèi)容并換行,其后一對圓括號中的內(nèi)容是println方法的實際參數(shù),其指定了要打印的內(nèi)容(以一對雙引號括起來的字符串常量)。

(8)通過點號訪問類的字段及方法(第8行),這與訪問C語言中結構體的成員類似。

上述大部分特征與C語言是一致的,沒有面向對象編程經(jīng)驗的讀者可能會對其中部分內(nèi)容較為陌生,這里只需有一個初步的認識,詳細內(nèi)容將在后續(xù)章節(jié)分別介紹。

1.5.2 編譯源文件

源文件編輯完畢后,就可以對其編譯了。打開命令行窗口,執(zhí)行以下操作。

(1)輸入“D:”并回車,工作路徑將切換到D盤。

(2)輸入“CD MyJavaSource”并回車,工作路徑將切換到D盤下的MyJavaSource目錄,即Java源文件所在的目錄CD(Change Directory,改變目錄)是命令行的內(nèi)部命令,用于改變命令行的工作路徑。

(3)輸入“javac HelloWorld.java”并回車,注意javac后的文件名要與之前保存的文件名嚴格一致。若源文件沒有錯誤,則執(zhí)行完此命令后如圖1-11所示。

圖1-11 成功編譯源文件

打開D盤下的MyJavaSource文件夾,會發(fā)現(xiàn)多了一個名為HelloWorld.class的文件,它就是源文件被成功編譯的結果—類文件。

1.5.3 運行類文件

有了類文件,接下來就可以運行它了。在命令行窗口中輸入“java HelloWorld”(注意不要在HelloWorld后加“.class”),程序將在命令行窗口中打印一行文字,如圖1-12所示。

圖1-12 成功運行Java類文件

請讀者思考兩個問題:

(1)Java解釋器是如何找到HelloWorld.class這個類文件的?

(2)HelloWorld類用到了JDK類庫提供的System類,后者又是如何被找到的?

1.4節(jié)中配置的Classpath環(huán)境變量指定了兩部分內(nèi)容—“.”和“rt.jar”,前者代表命令行窗口的當前工作路徑。由于在運行HelloWorld類之前,已經(jīng)將工作路徑切換到了HelloWorld.class文件所在的路徑(即D盤下的MyJavaSource目錄),因此Java解釋器能在該路徑下找到相應的類文件。

如前所述,多個Java類文件可以被壓縮為一個擴展名為jar的文件,因此,每個jar文件都相當于一個目錄。讀者可以用解壓縮工具瀏覽rt.jar的目錄結構,如圖1-13所示。當把某個jar文件加到Classpath中后,Java運行環(huán)境就能根據(jù)Classpath環(huán)境變量找到該jar文件,從而找到該jar文件中所有的類。HelloWorld類所引入的System類就在rt.jar中(具體是在壓縮文件的java目錄下的lang目錄中),而該jar文件已經(jīng)被加到了Classpath環(huán)境變量中。

圖1-13 rt.jar文件

可見,Classpath環(huán)境變量的作用是讓Java運行環(huán)境知道到哪里去找需要的類文件,因此,完全可以將自己編寫的類文件所在的路徑加到Classpath中例如,可以將“D:\ MyJavaSource”加到Classpath中,這樣就可以在任何工作路徑下直接輸入“java HelloWorld”運行HelloWorld類了。一般很少這樣做,是因為class文件所在的路徑往往不固定。既然配置了“.”,故只要先將工作路徑切換到class文件所在路徑,便能找到該路徑下的class文件。。如果程序用到了第三方jar文件中的類,則應該將這些jar文件(包括其所在路徑)也加到Classpath環(huán)境變量中。

主站蜘蛛池模板: 库车县| 探索| 灌南县| 奈曼旗| 启东市| 修武县| 搜索| 七台河市| 宽甸| 永清县| 农安县| 五台县| 伊通| 香格里拉县| 东乌| 林芝县| 富民县| 苍溪县| 仁怀市| 绿春县| 阿克| 奉节县| 石门县| 西盟| 雷波县| 神池县| 亚东县| 灌阳县| 蒙山县| 思茅市| 克东县| 类乌齐县| 泰安市| 屏南县| 茂名市| 汉中市| 定日县| 宽甸| 赤城县| 安远县| 舟曲县|