Ch.4 註解、資料、變數

4-1 為程式加入註解

基本上程式的目的是告知電腦,按照您所指定的流程來運作,程式語言的目的是在與電腦溝通,然而另一方面,撰寫程式的是人類,您也必須看懂您程式的意圖,必要的時候,您可以為您的程式加入說明,在日後可以幫助您了解當初是如何撰寫程式的,如果有別的程式設計人員打算維護您的程式,也可以藉由程式中的說明迅速了解程式的作用。

您為程式所加入的說明,以程式設計的術語來說稱之為「註解」( Comment ),在這個小節您可以了解:

  • 註解的結構
  • 註解的風格

• 註解的結構

您應該在您撰寫的程式中加入註解,這樣會使程式更具有可讀性。對於團體開發的大型程式而言,因為多個程式設計人員都必須閱讀程式碼,所以註解顯得更加重要。當在維護程式時,註解也能夠幫助新的程式設計人員了解程式碼的作用。

有兩種主要的註解種類可以使用:

單行註解( Single-line comment )

下面的程式範例告訴您如何加入單行註解:

public class SingleCommentDemo
{
    public static void main(String[] args)
    {
        //顯示Hello!World!
        System.out.println("Hello!World!");
    }
}
                            
程式碼 4-1 SingleCommentDemo.java

標記"//"告訴編譯器忽略此標記之後到此行結尾之間的內容,例如有 SingleCommentDemo 的第 3 行包括了單行註解,編譯器不會處理該行。

傳統註解( Traditional comment )

有時候註解文字必須分作好幾行來撰寫,一行一行的使用單行註解標記"//"並不方便,您可以使用傳統的註解方式,在"/*""*/"之間撰寫註解文字,例如:

/*
名稱:第一個 Java 程式練習
目的:在螢幕上顯示 Hello!World!
傳統註解
*/
public class TraditionalCommentDemo
{
    public static void main(String[] args) {
        System.out.println("Hello!World!");
    }
}
                            
程式碼 4-2 TraditionalCommentDemo.java

標記"/*"與"*/"告訴編譯器忽略"/*"標記之後到下一個"*/"之間的內容,例如編譯器不會處理 TraditonalCommentDemo 類別中第 1 行至第 4 行的內容。

之所以稱之為傳統註解,是因為這個註解方式是從 C 語言開始就有的,Java 也採用同樣的註解方式,因為這種註解可以多行,所以也俗稱「多行註解」。

要注意的是傳統註解是以"/*"作為註解開始,以遇到"*/"作為註解結束,所以不可以用巢狀(Nested)的方式來撰寫傳統註解,例如下頁的註解方式是錯誤的:

/*
名稱:第一個 Java 程式練習
    /*
     目的:在螢幕上顯示 Hello!World!
    */
*/
                            

編譯器遇到第一個"*/"符號時,就會以為註解範圍已經結束,而在下一次遇到"/*"時,就會視它為不合法的程式撰寫,因而發出編譯錯誤的訊息。

重點提示

第三種註解的方式,稱為文件註解( Documentcomment ) 。這種方式的註 解是藉 由 JDK 內 附的工具javadoc 來產生文件。事實上,在 Java Standard EditionSDK 上所有的類別函式庫說明文件都是由 javadoc 工具所產生。文件註解必須以斜線和兩個星號開始(/**),而由一個星號和一個斜線結束(*/)。之前傳統註解的例子也是合法的文件註解。

圖4-1、為程式加入註解是個很好的習慣

• 註解的風格

撰寫註解就像是在撰寫文件,註解在於輔助程式設計人員閱讀程式,如何將註解撰寫的簡單明瞭、易於閱讀也是很重要的,這邊介紹幾種常見的註解風格。

許多的程式設計者喜歡在變數(Variable)宣告時用註解表明變數的作用,例如:

int numberOfStudent; // 學生的學號
                            

有的開發人員會在每一個類別和方法的最後一行加上單行註解,使得區塊範圍顯而易見,例如:

public class HelloWorld {
    public static void main(String[] args) {
    ...
    } // main 結束
} // HelloWorld 結束
                            

遇到暫時不想執行的陳述句(Statement),可以使用單行註解將之暫時註銷,編譯器就不會去處理該行,例如下面的程式不會顯示"Hello!?":

public class HelloWorld {
    public static void main(String[] args) {
        // System.out.println("Hello!?");
        System.out.println("World!?");
    }
}
                            

遇到大範圍的程式片段不想執行,可以用傳統註解將該段程式碼設為註解文字,如此編譯器就不會去處理,例如:

public class HelloWorld {
    public static void main(String[] args) {
        /* System.out.println("Hello!?");
            System.out.println("Good!?");
            ....一大堆程式碼
        */
        System.out.println("Hello!?");
    }
}
                            

有些程式開發人員喜歡在程式一開始時撰寫程式名稱、目的等文字,並用許多"*"讓註解看了像是標題文字,例如:

/***************************************
 * Variable Declaration Section       *
 * 變數宣告區域                         *
****************************************/
                            

重點提示

有機會的話,可以打開 JDK 中 src.zip 檔案的原始程式來看看,了解一下官方程式碼中是如何撰寫註解。

圖4-2、養成使用註解的習慣