Java程式的基本要素

2020-07-16 10:05:04
儘管《Java程式應用範例》一節中的範例很簡單,但它包括所有 Java 程式具有的基本要素及幾個關鍵特性。現在以《Java程式應用範例》中的 HelloJava.java 為例說明 Java 程式的基本要素及編碼規範。在該應用程式中包含的元素有:識別符號、關鍵字、注釋、修飾符、語句、塊、類以及 main() 方法。要建立一個程式,必須理解這些基本元素。下面分別介紹這些元素。

識別符號

Java 中識別符號是為方法、變數或其他使用者定義項所定義的名稱。識別符號可以有一個或多個字元。在 Java 語言中,識別符號的構成規則如下。
  • 識別符號由數位(0~9)和字母(A~Z 和 a~z)、美元符號($)、下劃線(_)以及 Unicode 字元集中符號大於 0xC0 的所有符號組合構成(各符號之間沒有空格)。
  • 識別符號的第一個符號為字母、下劃線和美元符號,後面可以是任何字母、數位、美元符號或下劃線。

另外,Java 區分大小寫,因此 myvar 和 MyVar 是兩個不同的識別符號。

提示:識別符號命名時,切記不能以數位開頭,也不能使用任何 Java 關鍵字作為識別符號,而且不能賦予識別符號任何標準的方法名。

識別符號分為兩類,分別為關鍵字和使用者自定義識別符號。
  1. 關鍵字是有特殊含義的識別符號,如 true、false 表示邏輯的真假。
  2. 使用者自定義識別符號是由使用者按識別符號構成規則生成的非保留字的識別符號,如 abc 就是一個識別符號。

提示:使用識別符號時一定要注意,或者使用關鍵字,或者使用自定義的非關鍵字識別符號。此外,識別符號可以包含關鍵字,但不能與關鍵字重名。

例如以下合法與不合法識別符號。
  • 合法識別符號:date、$2011、_date、D_$date 等。
  • 不合法的識別符號:123.com、2com、for、if、fruit 等。

識別符號用來命名常數、變數、類和類的物件等。因此,一個良好的程式設計習慣要求命名識別符號時,應賦予它一個有意義或有用途的名字。

關鍵字

關鍵字(或者保留字)是對編譯器有特殊意義的固定單詞,不能在程式中做其他目的使用。關鍵字具有專門的意義和用途,和自定義的識別符號不同,不能當作一般的識別符號來使用。例如,在 HelloJava.java 中的 class 就是一個關鍵字,它用來宣告一個類,其類名稱為 HelloJava。public 也是關鍵字,它用來表示公共類。另外,static 和 void 也是關鍵字,它們的使用將在本教學後面的章節中詳細介紹。

Java 的關鍵字對 Java 編譯器有特殊的意義,它們用來表示一種資料型別,或者表示程式的結構等。保留字是為 Java 預留的關鍵字,它們雖然現在沒有作為關鍵字,但在以後的升級版本中有可能作為關鍵字。

Java 語言目前定義了 51 個關鍵字,這些關鍵字不能作為變數名、類名和方法名來使用。以下對這些關鍵字進行了分類。
  1. 資料型別:boolean、int、long、short、byte、float、double、char、class、interface。
  2. 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
  3. 修飾符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
  4. 動作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
  5. 保留字:true、false、null、goto、const。

提示:由於 Java 區分大小寫,因此 public 是關鍵字,而 Public 則不是關鍵字。但是為了程式的清晰及可讀性,要盡量避免使用關鍵字的其他形式來命名。

註釋

注釋是對程式語言的說明,有助於開發者和使用者之間的交流,方便理解程式。注釋不是程式設計語句,因此被編譯器忽略。

在 Java 中,一行註釋以雙斜槓(//)標識;多行注釋包含在“/*”和“*/”之間;文件注釋包含在“/**”和“*/”之間。例如給 JavaApplet.java 檔案新增註釋。
import java.applet.*;    //匯入java.applet包下的所有類
import java.awt.*;    //匯入java.awt包下的所有類
public class JavaApplet extends Applet
{
    /**
    *Applet初始化方法
    *@see java.applet.Applet 類
    *@return 無
    */
    public void init()
    {
        setSize(300,200);    //指定大小
    }
    /**
    *Applet畫圖操作方法
    *@see java.applet.Applet
    */
    public void paint(Graphics g)
    {
        g.drawString("你好 Java 世界!",100,30);    //繪製影象
    }
}

在 Java 中,一行註釋以雙斜槓(//)標識;多行注釋包含在“/*”和“*/”之間;文件注釋包含在“/**”和“*/”之間。例如給 JavaApplet.java 檔案新增註釋。當編譯器執行到“//”時,就會忽略該行“//”之後的所有文字;當執行到“/*”時,會掃描下一個“*/”並忽略“/*”和“*/”之間的任何文字;當執行到“/**”時,也會掃描下一個“*/”並忽略“/**”和“*/”之間的任何文字內容。

修飾符

Java 使用了一定數量的稱為修飾符的關鍵字,這些修飾符指定了資料、方法和類的屬性以及它們的使用方法。例如 public 和 static 都是修飾符,另外還有 private、final、abstract 和 protected。 一個 public 資料、方法或者類可以被其他的類存取,而一個 private 資料或方法不能被其他類存取。後面的章節中將會詳細講解這些修飾符的用法。

語句和塊

語句代表一個動作或一系列動作。例如 JavaApplet.java 檔案的 init() 方法中,只有一條語句“SetSize(300,200);”,該語句指定了畫布的大小。

在 Java 語言中語句是以分號(;)來結尾的。 程式中的大括號形成了組織程式中的語句塊。在 Java 中,每個塊以大括號“{”開始,以大括號“}”結束。每個類都有組織該類資料和方法的類塊,每個方法也都有組織該方法內語句的方法塊。塊可以巢狀,也就是說一個塊可以放置在另一個塊內,如下面的程式碼所示。
public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("你好,Java 世界!");
    }
}

該段程式碼中的 main() 方法塊放置在了 Hello 類的塊中。

類是 Java 的基本架構,在 Java 中程式設計必須理解類並學會編寫和使用類。上面已經講到過,在 Java 中,每個 Java 程式至少必須有一個類。每個類都要先宣告,然後定義該類的資料和方法。

Java 中可以定義多個類,每個 Java 程式的定義都是使用一個或多個類完成的。在上述例子中,Hello 即為類名。有關類的知識將在本教學的後面章節中做詳細講解。

方法

在 Java 中,方法同 C 語言中的函數作用相似,都可以執行一系列動作。如上例中 System.out.println("你好,Java世界!"),是執行向控制台輸出字串的資訊。其中 System.out 是標準輸出物件,println 是該物件的一個方法,它由執行向標準輸出裝置顯示資訊的一系列操作語句集組成,通過呼叫帶有字串引數的語句對它進行操作。

在上例子中,"你好,Java世界!"即為引數。可以用不同的引數呼叫同一個 println() 方法,顯示不同的資訊。

main()方法

main() 方法是 Java 程式中非常重要的方法,它是程式的入口。如上例子中,在 Hello 類中定義了一個 main() 方法,其中 public 表示存取許可權,指明所有的類都可以使用這個方法;static 指明該方法是一個類方法(又稱為靜態方法),它可以通過類名直接呼叫;void 則指明 main() 方法不返回任何值。

對一個應用程式來說,main() 方法是必需的,而且必須按照上面的格式來定義。Java 直譯器在沒有生成任何範例的情況下,以 main() 方法作為入口來執行程式。Java 程式中可以定義多個類,每個類中可以定義多個方法,但 main() 方法作為程式的入口,只能有一個。

main() 方法定義中,小括號“()”中的“String[] args”是傳遞給 main() 方法的引數,引數名為 args,它是類 String 的一個範例。引數可以為 0 個或多個,多個引數間用括號分隔。main() 方法的實現由大括號“{}”括起來。