第三章節 開發、執行 Java 程式

3-1 撰寫 Java 程式

撰寫 Java 程式時,所使用的是純文字檔案,在 Windows 下開啟的純文字檔案其副檔名為*.txt 的檔案,不過 Java 原始碼檔案的副檔名是*.java,在這個小節中,要教導您如何:

  • 開啟純文字檔案並重新命名副檔名為*.java
  • 撰寫第一個 Java 程式

• 開啟純文字檔案並重新命名副檔名為*.java

要撰寫 Java 程式的原始碼時,所使用的是沒有任何格式設定的純文字檔案,如果是在 Windows 作業系統下,純文字檔案為副檔名為*.txt 的檔案,可使用「記事本」開啟純文字檔案並進行編輯。

假設您的 C 磁碟機下已經有一個 workspace 資料夾,以後撰寫 Java 程式的示範都在這個資料夾中進行,在 Windows 下要新增一個純文字檔案最簡單的方式,就是按滑鼠右鍵執行「新增」「文字文件」

圖3-1、新增文字文件

新增文字文件完成後,您會發現多了一個圖示為 的檔案,在檔案上按兩下滑鼠左鍵即可開啟文字文件,Windows 下的文字文件預設副檔名為*.txt,您必須將之「另存新檔」,重新儲存為副檔名為*.java 的檔案,請執行「檔案」「另存新檔」,然後在「存檔類型」選擇「所有檔案」,並重新命名檔案為副檔名為*.java 的檔案。

圖3-2、另存為*.java 的檔案

在 Windows 作業系統下,並不區分檔案名稱的大小寫,然而在其它作業系統下,通常區分檔案名稱的大小寫,建議您平時就養成區分檔案名稱大小寫不同的習慣,在日後使用其它作業系統撰寫程式時,就不至於在檔案名稱大小寫上發生困擾。

每一次都要透過另存新檔的方式來重新命名副檔名有點麻煩,最快的方式是直接點取一下 的檔案名稱後重新命名檔案,不過要注意的是有些 Windows 作業系統預設是不顯示副檔名的,這會造成檔案命名時的困擾,例如在不顯示副檔名的情況下,您也許會以為圖 3-3 中的檔案副檔名為*.java。

圖3-3、未顯示副檔名

在不顯示副檔名的情況下,事實上檔案名稱是 HelloWorld.java.txt,副檔名仍舊是*.txt,可在文字模式下使用目錄查詢指令 dir 就看出來了。

圖3-4、文字模式下會顯示副檔名

為了避免檔案命名時的困擾,建議將 Windows 設定為顯示副檔名,這可以在「組合管理」上執行「資料夾和搜尋選項」,在「檢視」頁籤中將「隱藏已知檔案類型的副檔案」選項取消。

圖3-5、文字模式下會顯示副檔名

如此設定之後,您就可以直接在 下的檔案名稱上點選,以直接修改副檔名,修改副檔名後,作業系統會請您確認是否修改副檔名,按「確定」即可。

圖3-6、確定修改副檔名

• 撰寫第一個 Java 程式

假設您在C磁碟機的 workspace 資料夾下開啟了HelloWorld.java,接著就可以開始撰寫您的第一個 Java 程式了,請按照圖 3-7 中的程式進行撰寫,注意每個字的大小寫與標點符號,並注意空白不可以是全形空白字元。

圖3-7、第一個 Java 程式

檔案中鍵入的文字其主要目的,就是跟電腦打交道,這個程式使用 Java 程式語言告訴電腦:「我是一個 HelloWorld 類別,請您按照我規定的主要流程( main )來作事,流程中只有一個工作,在螢幕上顯示 Hello!World!」。

了解這個程式的作用之後,接下來正式開始學習第一個 Java 程式語言,如同英文有單字、文法等結構,Java 程式語言也有關鍵字、語法等規範。

定義類別

撰寫 Java 程式的第一步都是從定義類別(class)開始,一個類別是一個 Java 程式的基本單位,定義類別時使用 class 關鍵字,後面跟隨著一個類別名稱。

重點提示

關鍵字指的是程式語言中已經使用的一些單字,例如 class 關鍵字用來表示定義一個類別,當您為類別或程式中的一些元素取名時,不可以使用到這些關鍵字。

在類別名稱定義前加上一個 public 鍵字,表示所定義的類別是公開的類別,公開的類別有兩種意義,第一個意義表示,檔案名稱在命名時,主檔名必須與類別名稱同名,就我們的例子而言,由於公開類別名稱為 HelloWorld,則檔案名稱必須取名為 HelloWorld.java,另外,一個 Java 原始檔案中可以定義數個類別,但是只能有一個公開的類別。

重點提示

定義類別名稱時建議使用英文,雖然中文也可以被允許的,但由於並不是每個系統都可以順利顯示或讀取中文檔名,所以建議仍以英文取名,另外命名的慣例是類別名稱的首字大寫,並在名稱上表示出類別的作用。

公開類別的第二個意義為權限的管理,一個類別被定義為公開的類別,則表示其它的 Java 程式都可以使用這個類別,如果沒有定義類別為公開,則類別只能被同一個套件( package )管理下的其它 Java 程式所使用。

可以先把套件想成管理多個類別的單位,套件與套件間的類別檔案要相互使用的話,必須設定好相關權限,要讓目前的類別可以被其它套件中的類別使用,則目前類別必須設定為公開的(public)。

圖3-8、公開類別可以被其它套件中的程式所使用

類別的定義範圍( Scope )由大括號 {} 包括,在括號之間稱為一個區塊( Block ),在區塊之間的定義都屬於同一個類別。

定義主流程

假設一個 Java 程式已經啟動,那麼該從哪邊開始執行呢?Java 程式的執行起點( Entry point )是從 main 方法(Method)開始,main 方法的寫法規定必須是:

public static void main(String[] args)

可以看到,有三個關鍵字來修飾 main 方法。必須是 public,因為一個公開的方法才可以被 Java 虛擬機器執行;必須是 static,Java 虛擬機器才可以直接呼叫 main 方法,而不用為該類別產生實例;void 表示方法執行完畢不傳回任何值。

Java 初學者要詳細了解這幾個關鍵字需要一些物件導向的基礎,建議初學者先將這種寫法當作一個規定即可。

在 main 方法後的括號定義了參數列( Parameter list ),在呼叫方法時可以一併給方法一些執行過程中所必要的資訊,這些資訊稱之為引數( Argument ),參數列中的參數可以儲存引數,以供方法使用。

main 括號中的 args 來儲存啟動程式時,使用者一併給程式的命令列引數( Command line argument ),目前雖然還沒必要使用命令列引數,但是仍要撰寫 String[] args,這是規定。

方法也是以花括號 { } 來定義作用範圍,括號間為方法區塊,在區塊之間的定義都屬於同一個方法。

對於 main 為何要這麼設計,可以進一步參考 Java Tutorial 中對 main 的介紹:http://docs.oracle.com/javase/tutorial/getStarted/application/

定義陳述句

程式一開始執行 main 方法之後,就會執行您所指定的動作,在您的第一個 Java 程式中,只有一行陳述句( Statement ),您只要求電腦一件事:

System.out.println("Hello!World!");
                            

這一行的意思是使用 System 類別out 成員( Member ),要求使用 out 上的 println()方法,在螢幕上顯示 Hello!World!。

System 是 Java SE 供的類別,一個類別中可以管理多個成員,其中 out 成員負責標準輸出( Standard output ),只要將所要輸出的文字以雙引號"包括,並告知 println()方法,即可將文字顯示在螢幕上。

簡單的說,System.out.println()表示:請使用 System 的 out 上之 println()方法,顯示您所指定的文字。在 Java 中每一個陳述句結束時,記得加上分號

圖3-9、用 Java 程式語言告訴電腦該作些什麼事