답변:
첫 번째 형태는 Javadoc 입니다. javadoc
도구에서 생성 된 코드에 대한 공식 API를 작성할 때이 기능을 사용합니다 . 예를 들어, Java 7 API 페이지 는 Javadoc을 사용하며 해당 도구에 의해 생성되었습니다.
Javadoc에서 볼 수있는 몇 가지 일반적인 요소는 다음과 같습니다.
@param
: 이것은 메소드에 전달되는 매개 변수와 예상되는 값을 나타내는 데 사용됩니다.
@return
: 메소드가 어떤 결과를 돌려 줄지 나타내는 데 사용됩니다.
@throws
: 특정 입력의 경우 메소드에서 예외 또는 오류가 발생 함을 표시하는 데 사용됩니다.
@since
:이 클래스 또는 함수가 사용 가능한 가장 초기 Java 버전을 나타내는 데 사용됩니다.
예를 들어 다음과 같은 compare
방법에 대한 Javadoc 이 있습니다 Integer
.
/**
* Compares two {@code int} values numerically.
* The value returned is identical to what would be returned by:
* <pre>
* Integer.valueOf(x).compareTo(Integer.valueOf(y))
* </pre>
*
* @param x the first {@code int} to compare
* @param y the second {@code int} to compare
* @return the value {@code 0} if {@code x == y};
* a value less than {@code 0} if {@code x < y}; and
* a value greater than {@code 0} if {@code x > y}
* @since 1.7
*/
public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
두 번째 형식은 블록 (여러 줄) 주석입니다. 주석에 여러 줄을 추가하려는 경우이를 사용합니다.
나는 당신이 후자의 형태를 조금만 사용하고 싶다고 말할 것이다 . 즉, 메소드 / 복합 함수의 동작을 설명하지 않는 블록 주석으로 코드를 과도하게 사용하고 싶지 않습니다.
Javadoc은이 두 가지를 더 잘 설명하고이를 사용하여 실제 문서를 생성 할 수 있으므로 간단한 블록 주석보다 Javadoc을 사용하는 것이 더 바람직합니다.
Java 프로그래밍 언어의 경우 두 언어 간에 차이 가 없습니다 . Java에는 전통적인 주석 ( /* ... */
)과 줄 끝 주석 ( ) 이라는 두 가지 유형의 주석이 // ...
있습니다. Java 언어 사양을 참조하십시오 . 그래서, 자바 프로그래밍 언어, 모두 /* ... */
와는 /** ... */
즉, 기존의 코멘트 인스턴스이며, 그들은 모두 자바 컴파일러에 의해 정확히 동일하게 취급되어 무시됩니다 (: 그들은 공백으로 처리됩니다 이상 올바르게).
그러나 Java 프로그래머는 Java 컴파일러만을 사용하지 않습니다. 컴파일러, IDE, 빌드 시스템 등을 포함한 전체 툴 체인을 사용합니다. 이러한 툴 중 일부는 Java 컴파일러와 다르게 해석합니다. 특히 /** ... */
주석은 Java 플랫폼에 포함되어 있고 문서를 생성 하는 Javadoc 도구로 해석됩니다 . Javadoc 도구는 Java 소스 파일을 스캔하고 그 사이의 부분 /** ... */
을 문서로 해석합니다 .
이것은 like FIXME
와 같은 태그와 유사합니다 TODO
. // TODO: fix this
or 와 같은 주석을 포함하면 // FIXME: do that
대부분의 IDE는 그러한 주석을 강조 표시하여 잊지 않도록합니다. 그러나 Java의 경우 주석 일뿐입니다.
javadoc
도구가 무언가를 해석 할 수 없기 때문에 불평하기 시작합니다 .
JLS 3.7 섹션을 읽으면 Java 주석에 대해 알아야 할 모든 내용이 잘 설명되어 있습니다.
두 가지 종류의 주석이 있습니다.
- / * 텍스트 * /
일반적인 주석 : ASCII 문자 / *에서 ASCII 문자 * /까지의 모든 텍스트는 무시됩니다 (C 및 C ++에서와 같이).
- //본문
줄 끝 주석 : // ASCII 문자에서 줄 끝까지의 모든 텍스트는 무시됩니다 (C ++에서와 같이).
질문에 대해
첫번째
/**
*
*/
Javadoc Technology 선언에 사용됩니다 .
Javadoc은 소스 파일 세트에서 선언 및 문서 주석을 구문 분석하고 클래스, 인터페이스, 생성자, 메소드 및 필드를 설명하는 HTML 페이지 세트를 생성하는 도구입니다. Javadoc Doclet을 사용하여 Javadoc 출력을 사용자 정의 할 수 있습니다. Doclet은 Doclet API로 작성된 프로그램으로, 도구가 생성 할 출력의 내용과 형식을 지정합니다. Doclet을 작성하여 HTML, SGML, XML, RTF 및 MIF와 같은 모든 종류의 텍스트 파일 출력을 생성 할 수 있습니다. Oracle은 HTML 형식 API 문서를 생성하기위한 표준 Doclet을 제공합니다. Doclet을 사용하여 API 문서 작성과 관련이없는 특수 작업을 수행 할 수도 있습니다.
자세한 내용 Doclet
은 API 를 참조하십시오 .
사이에 두 번째는, 같은 JLS 명확하게 설명, 모든 텍스트를 무시 /*
하고 */
여러 의견을 작성하는 데 사용됩니다 따라서.
Java의 주석에 대해 알고 싶은 다른 것들
/* and */
로 시작하는 주석에는 특별한 의미가 없습니다 //
.//
로 시작하는 주석에는 특별한 의미가 없습니다 /* or /**
.따라서 다음 텍스트는 완전한 단일 주석입니다.
/* this comment /* // /** ends here: */
기존 답변이 문제 의이 부분을 적절하게 해결했다고 생각하지 않습니다.
언제 사용해야합니까?
조직 내에서 게시되거나 재사용 될 API를 작성하는 경우 모든 public
클래스, 메소드 및 필드뿐만 아니라 protected
비 final
클래스 의 메소드 및 필드에 대한 포괄적 인 Javadoc 주석을 작성해야합니다 . Javadoc은 전제 조건, 사후 조건, 유효한 인수, 런타임 예외, 내부 호출 등과 같이 메소드 서명으로 전달할 수없는 모든 것을 포함해야합니다 .
내부 API (동일한 프로그램의 다른 부분에서 사용되는 API)를 작성하는 경우 Javadoc은 덜 중요합니다. 그러나 유지 보수 프로그래머의 이익을 위해 올바른 사용법이나 의미가 즉시 명확하지 않은 모든 메소드 또는 필드에 대해 Javadoc을 작성해야합니다.
Javadoc의 "킬러 기능"은 Eclipse 및 기타 IDE와 밀접하게 통합되어 있다는 것입니다. 개발자는 식별자 위에 마우스 포인터를 올려 놓아야 알 수있는 모든 것을 배울 수 있습니다. 경험이 풍부한 Java 개발자에게는 문서를 지속적으로 참조하는 것이 제 2의 특성이되어 자체 코드의 품질을 향상시킵니다. API가 Javadoc과 함께 문서화되지 않은 경우 숙련 된 개발자는 사용하지 않을 것입니다.
다음 Java 코드 목록의 주석은 회색으로 표시됩니다.
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
Java 언어는 세 가지 종류의 주석을 지원합니다.
/* text */
컴파일러는에서 /*
까지 모든 것을 무시 합니다 */
.
/** documentation */
이것은 문서 주석 (문서 주석)을 나타냅니다. 컴파일러는 /*
and 를 사용하는 주석을 무시하는 것처럼 이러한 종류의 주석을 무시합니다 */
. JDK javadoc 도구는 자동 생성 된 문서를 준비 할 때 문서 주석을 사용합니다.
// text
컴파일러는 //
줄 끝까지 모든 것을 무시합니다 .
이제 언제 사용해야하는지에 대해 :
// text
한 줄의 코드에 주석을 달고 싶을 때 사용하십시오 .
/* text */
여러 줄의 코드에 주석을 달고 싶을 때 사용하십시오 .
/** documentation */
프로그램 문서 자동 생성에 사용할 수있는 프로그램에 대한 정보를 추가하려는 경우에 사용하십시오 .
첫 번째는 클래스, 인터페이스, 메소드 등에서 정의한 Javadoc을위한 것입니다. Javadoc을 이름 제안으로 사용하여 클래스의 역할 또는 메소드가 수행하는 작업에 대한 코드를 문서화하고 보고서를 생성 할 수 있습니다.
두 번째는 코드 블록 주석입니다. 예를 들어 컴파일러가 해석하기를 원하지 않는 코드 블록이 있다고 가정하면 코드 블록 주석을 사용합니다.
다른 하나는 // 당신이 진행하는 코드 라인이 무엇을할지 지정하기 위해 문장 레벨에서 사용하는 것입니다.
// TODO와 같은 다른 것들도 있습니다. 이것은 나중에 그 장소에서 무언가를하고 싶다고 표시합니다.
// FIXME 임시 솔루션이 있지만 나중에 방문하여 더 나아질 때 사용할 수 있습니다.
도움이 되었기를 바랍니다
Java는 두 가지 유형의 주석을 지원합니다.
/* multiline comment */
: 컴파일러는에서 모든 것을 무시 /*
합니다 */
. 주석은 여러 줄에 걸쳐있을 수 있습니다.
// single line
: 컴파일러는 //
줄 끝 에서 모든 것을 무시합니다 .
javadoc 과 같은 일부 도구 는 목적에 따라 특별한 여러 줄 주석을 사용합니다. 예를 들어 /** doc comment */
, 자동 생성 된 문서를 준비 할 때 javadoc에서 사용하는 문서 주석이지만 Java의 경우 간단한 여러 줄 주석입니다.
/** .. */
단순한 여러 줄 주석이며 그 안의 첫 문자는 별표입니다.