- Java程序設計:原理與范例
- 胡平主編
- 2063字
- 2018-12-29 11:56:22
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ā)效率。
接下來,我們開始編寫本書的第一個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源文件的擴展名。
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源文件所在的目錄。
(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中。如果程序用到了第三方jar文件中的類,則應該將這些jar文件(包括其所在路徑)也加到Classpath環(huán)境變量中。
- JavaScript從入門到精通(微視頻精編版)
- Python數(shù)據(jù)分析基礎
- HTML5 移動Web開發(fā)從入門到精通(微課精編版)
- Django開發(fā)從入門到實踐
- Asynchronous Android Programming(Second Edition)
- Mastering Data Mining with Python:Find patterns hidden in your data
- Learning Ionic
- Learning iOS Security
- 算法圖解
- 零基礎C#學習筆記
- Learning C++ by Creating Games with UE4
- 讓Python遇上Office:從編程入門到自動化辦公實踐
- Hands-On ROS for Robotics Programming
- Learning Apache Thrift
- Practical Time Series Analysis