Java中注释的使用是有原则的

开发 后端
Java同样提供跨越多行的注释类型。这种类型的注释以紧跟着一个星号的正斜杠开始,并以紧跟着一个正斜杠的星号结束。这种类型注释的开始和结束分界符可以在同一行里也可以在不同的行上。例如:

 Java提供了3种类型的注释

Java中注释的使用是有原则的

例如:

  1. // this is a single-line comment x = 1; // a single-line comment after code 

多行注释(C风格)

Java同样提供跨越多行的注释类型。这种类型的注释以紧跟着一个星号的正斜杠开始,并以紧跟着一个正斜杠的星号结束。这种类型注释的开始和结束分界符可以在同一行里也可以在不同的行上。例如:

  1. /* This is a c-style comment */ /* This is also a c-style comment, spanning multiple lines */ 

注意:C风格的注释不可以嵌套使用。比如下面的用法:

  1. /* A comment looks like /* This is a comment */ blah blah blah */ 

上面的用法会造成语法错误,因为Java编译器只把***个 */ 当做注释来处理。(编译器认为注释在***个“*/”就结束了)。

你可以在多行注释里嵌入单行注释:

  1. /* This is a single-line comment: // a single-line comment */ 

以及在单行注释里使用多行注释:

  1. // /* this is // a multi-line // comment */ 

文档注释

文档注释是一种与多行注释很类似的特殊注释,它可以用来为你的源代码产生外部文档。这种注释以紧跟着两个星号的正斜杠开始,并以紧跟着一个正斜杠的星号结束。例如:

  1. /** This is a documentation comment */ /** This is also a documentation comment */ 

这里有一些关于文档注释的重要事情要注意

javadoc文档生成器会把文档注释里的所有文本都添加到一个HTML段落里。这意味着,在文档注释里的任意文本都会被格式化为一个段落;空格和换行符会被忽略。如果你想要特殊的格式,你必须要在文档注释里使用HTML标签。

如果文档注释以超过两个的星号开始,那么javadoc就认为这些星号是用来在源码里创建一个“框”框住注释的,并忽略多余的星号。例如:

该注释仅保留“This is the start of a method”文本。

javadoc会忽略文档注释里处于行首的星号。例如:

该注释仅保留“This is a doc comment on multiple lines that I want to stand out in source code, looking “neat””文本。

常见的用法如下:

该用法是为了突出注释。要注意的是,这属于文档注释(即使这不是你所想的那样),并会在产生的文档里出现注释的内容。

什么时候使用文档注释

你(至少)应该在任意的公有类、接口、方法和源码里的类或实例变量前面使用文档注释。这样可以让javadoc针对代码产生简单的文档,它列出了公共实体 和每个实体的简要说明。你同样可以在非公共方法前面使用文档注释,不过需要使用一个javadoc选项来它们产生文档。相比于公有实体,在非公有实体上使 用文档注释显得没那么重要(它的接口不会暴露出来……)。但如果你要注释代码,你同样可以使用文档注释。

什么时候使用单行注释

任意时候都可以!

关于注释,我有一个简单的建议,在你想写常规注释(不是用来描述类、接口、方法或者变量的文档注释)的时候可以使用单行注释。

为什么?因为你可以轻易地使用多行注释去“注释掉”你的代码段(“注释掉代码”意味着把一段代码的词法状态变为一段注释,让编译器忽略这段代码)。举个例子:

  1. x = 1/* set x to 1 */ y = 2/* set y to 2 */ f(x, y); /* call f with x and y */ 

要把上面三行代码注释掉,你可能需要在每一行的前面使用单行注释:

  1. // x = 1; /* set x to 1 */ // y = 2; /* set y to 2 */ // f(x, y); /* call f with x and y */ 

或者在还没有加注释的地方加上多行注释:

  1. /* x = 1; */ /* set x to 1 */ /* y = 2; */ /* set y to 2 */ /* f(x, y);*/ /* call f with x and y */ 

或者分解或删除已存在的注释的“结束注释”分解符:

  1. /* x = 1; /* set x to 1 * / y = 2; /* set y to 2 * / f(x, y); /* call f with x and y * / */ 

这些用法都糟糕透了。如果原始代码使用下面的注释,那么事情就好办多了:

  1. x = 1// set x to 1 y = 2; // set y to 2 f(x, y); // call f with x and y 

如此一来,只需使用多行注释把代码围起来你就可以轻松把它注释掉:

  1. /* x = 1; // set x to 1 y = 2; // set y to 2 f(x, y); // call f with x and y */ 

在你需要使用注释的时候尽量使用单行注释。

什么时候使用多行注释

阅读了上面的内容后,这个问题变得很明显了。只使用多行注释来注释代码段,不要用以其他目的。

责任编辑:王雪燕 来源: ImportNew
相关推荐

2023-08-28 15:52:10

LinuxPDF

2010-03-19 09:26:52

Python编程

2023-08-26 11:36:31

Java框架Spring

2009-06-16 11:29:32

Javadoc

2009-09-21 09:40:12

Java元数据Java注释

2011-05-26 09:20:59

配线架

2014-07-21 09:22:40

GoAPI

2020-05-22 07:00:00

C#用户注释编程语言

2010-09-08 15:44:17

CSSidclass

2009-07-07 16:38:36

ServletCont

2021-01-29 13:29:53

系统调用

2014-06-20 14:24:42

CA TechnoloARCserve数据保护

2010-09-07 14:22:41

SQL语句

2021-01-14 10:10:51

Python函数Function An

2010-08-26 14:00:33

云ROI计算器产品

2020-05-14 09:15:52

设计模式SOLID 原则JS

2009-11-26 10:02:06

2010-05-20 18:07:58

2012-02-01 16:32:32

2022-05-31 08:04:23

TSdeclareTypeScript
点赞
收藏

51CTO技术栈公众号