評論
| 導航 語言基礎 主題: |
註釋允許插入不會被編譯或解釋的文字。它可以出現在原始碼中任何允許空格的地方。
它用於解釋原始碼的作用,透過
- 解釋採用的技術選擇:為什麼使用這種演算法而不是另一種演算法,為什麼呼叫這種方法……
- 解釋下一步應該做什麼(待辦事項列表):改進、需要修復的問題……
- 提供理解程式碼所需的解釋,以便您自己或其他開發人員能夠在以後更新它。
它還可以用於使編譯器忽略程式碼的一部分:用於除錯的臨時程式碼,正在開發的程式碼……
Java 中的註釋語法與 C++ 中相同。
行尾註釋以兩個斜槓開頭,以行尾結束。此語法也可以用於單行。
程式碼部分 3.105:斜槓-斜槓註釋。
// A comment to give an example
int n = 10; // 10 articles
|
多行註釋用 '/' + '*' 和 '*' + '/' 括起來。
程式碼部分 3.106:多行中的斜槓-星號註釋。
/*
* This is a comment
* on several lines.
*/
/* This also works; slash-star comments may be on a single line. */
/*
Disable debugging code:
int a = 10;
while (a-- > 0) System.out.println("DEBUG: tab["+a+"]=" + tab[a]);
*/
|
按照慣例,斜槓-星號註釋的後續行以一個星號開頭,該星號與開啟註釋序列中的星號對齊,但這不是必需的。不要將斜槓-星號註釋巢狀在另一個斜槓-星號註釋中。如果您不小心嵌套了這樣的註釋,您可能會在第一個星號-斜槓序列之後不久從編譯器那裡收到語法錯誤。
如果您需要在註釋中包含序列 */,您可以使用 html 數字實體:*/。
斜槓-星號註釋也可以放在任何 Java 標記之間,但不推薦。
程式碼部分 3.108:內聯斜槓-星號註釋。
int i = /* maximum integer */ Integer.MAX_VALUE;
|
但是,當註釋出現在字串文字中時,它們不會被解析為註釋。
程式碼部分 3.109:字串文字。
String text = "/* This is not a comment. */";
|
它會產生一個 33 個字元的字串。
問題 3.26:考慮以下程式碼
問題 3.26:帶註釋的程式碼。
int a = 0;
// a = a + 1;
a = a + 1;
/*
a = a + 1;
*/
a = a + 1;
// /*
a = a + 1;
// */
a = a /*+ 1*/;
a = a + 1; // a = a + 1;
System.out.println("a=" + a);
|
標準輸出中列印了什麼?
答案 3.26 的輸出
a=4 |
答案 3.26:帶註釋的程式碼。
int a = 0;
// a = a + 1;
a = a + 1;
/*
a = a + 1;
*/
a = a + 1;
// /*
a = a + 1;
// */
a = a /*+ 1*/;
a = a + 1; // a = a + 1;
System.out.println("a=" + a);
|
突出顯示的行是程式碼行,但第 11 行什麼也不做,只有第 12 行的第一部分是程式碼。
請注意,Java 仍然會在註釋中解釋 Unicode 序列。例如,Unicode 序列 \u002a\u002f(其程式碼點對應於 */)在 Java 編譯器的原始檔詞法掃描的早期就被處理了,甚至在處理註釋之前就被處理了,因此它在 Java 中是一個有效的星號-斜槓註釋
程式碼部分 3.110:Unicode 序列中斷。
/* This is a comment. \u002a\u002f
String statement = "This is not a comment.";
|
並且在詞法上等效於
程式碼部分 3.111:Unicode 序列中斷效果。
/* This is a comment. */
String statement = "This is not a comment.";
|
('*' 字元是 Unicode 002A,'/' 字元是 Unicode 002F。)
類似的注意事項適用於斜槓-斜槓註釋中的換行符。
例如
程式碼部分 3.112:換行符。
// This is a single line comment \u000a This is code
|
這是因為 \u000a 是 Unicode 中的換行符,這會讓編譯器認為您添加了一個新行,而實際上您沒有。
Javadoc 註釋是斜槓-星號註釋的一種特殊情況。
程式碼部分 3.113:Javadoc 註釋。
/**
* Comments which start with slash-star-star are Javadoc comments.
* These are used to extract documentation from the Java source.
* More on javadoc will be covered later.
*/
|