When is it appropriate to use a block comment at the beginning of methods, and when is it appropriate to use a javadoc-style comment?
From the "Comments" section of the Java style guide, I found this:
Java programs can have two kinds of comments: implementation comments and documentation comments. Implementation comments are those found in C++, which are delimited by
/*...*/
, and //. Documentation comments (known as "doc comments") are Java-only, and are delimited by/**...*/
. Doc comments can be extracted to HTML files using the javadoc tool.Implementation comments are meant for commenting out code or for comments about the particular implementation. Doc comments are meant to describe the specification of the code, from an implementation-free perspective. to be read by developers who might not necessarily have the source code at hand.
So, another way to phrase my question would be: When do methods deserve a specification of the code, from an implementation-free perspective (Javadoc) instead of a comment about a particular implementation, and vice versa? Would an interface get javadoc comments, while the implementations get block comments?
edit: I think I am not conveying my question correctly, based on the answers thus far.
Here's an example of what I want to know.
/**
* Javadoc comment here about general implementation?
*/
/*
* Should I now have a separate block comment for my specific implementation?
*/
public void foo()
{
...
}
The two different comment styles convey two different types of information. Are there cases when methods should have BOTH a leading javadoc comment, and a leading block comment?
The inspiration for even asking is that Eclipse auto-generated this for me just now:
/*
* (non-Javadoc)
* @see my.package#process()
*/
And I figured there is some sort of styling going on here that isn't declared specifically in the comment specifications I link to above.