评论
导航 语言基础 主题: ) |
注释允许插入不会被编译或解释的文本。它可以出现在源代码中任何允许空格的地方。
它用于解释源代码的作用,通过
- 解释采用的技术选择:为什么使用这种算法而不是另一种算法,为什么调用这种方法……
- 解释下一步应该做什么(待办事项列表):改进、需要修复的问题……
- 提供理解代码所需的解释,以便您自己或其他开发人员能够在以后更新它。
它还可以用于使编译器忽略代码的一部分:用于调试的临时代码,正在开发的代码……
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.
*/
|