Java - comentários de documentação

A linguagem Java suporta três tipos de comentários -

Sr. Não. Comentário e descrição
1

/* text */

O compilador ignora tudo de / * a * /.

2

//text

O compilador ignora tudo desde // até o final da linha.

3

/** documentation */

Este é um comentário de documentação e em geral é chamado doc comment. oJDK javadocferramenta usa comentários de documentos ao preparar documentação gerada automaticamente.

Este capítulo explica como explicar Javadoc. Veremos como podemos usar Javadoc para gerar documentação útil para o código Java.

O que é Javadoc?

Javadoc é uma ferramenta que acompanha o JDK e é utilizada para gerar documentação de código Java em formato HTML a partir do código-fonte Java, o que requer documentação em formato predefinido.

A seguir está um exemplo simples onde as linhas dentro de /*….*/ são comentários Java de várias linhas. Da mesma forma, a linha que precede // é o comentário de linha única do Java.

Exemplo

/**
* The HelloWorld program implements an application that
* simply displays "Hello World!" to the standard output.
*
* @author  Zara Ali
* @version 1.0
* @since   2014-03-31 
*/
public class HelloWorld {

   public static void main(String[] args) {
      // Prints Hello, World! on standard output.
      System.out.println("Hello World!");
   }
}

Você pode incluir tags HTML necessárias dentro da parte da descrição. Por exemplo, o exemplo a seguir faz uso de <h1> .... </h1> para título e <p> foi usado para criar quebra de parágrafo -

Exemplo

/**
* <h1>Hello, World!</h1>
* The HelloWorld program implements an application that
* simply displays "Hello World!" to the standard output.
* <p>
* Giving proper comments in your program makes it more
* user friendly and it is assumed as a high quality code.
* 
*
* @author  Zara Ali
* @version 1.0
* @since   2014-03-31 
*/
public class HelloWorld {

   public static void main(String[] args) {
      // Prints Hello, World! on standard output.
      System.out.println("Hello World!");
   }
}

As tags javadoc

A ferramenta javadoc reconhece as seguintes tags -

Tag Descrição Sintaxe
@autor Adiciona o autor de uma classe. @author name-text
{@código} Exibe texto em fonte de código sem interpretar o texto como marcação HTML ou tags javadoc aninhadas. {@code text}
{@docRoot} Representa o caminho relativo para o diretório raiz do documento gerado a partir de qualquer página gerada. {@docRoot}
@descontinuada Adiciona um comentário indicando que esta API não deve mais ser usada. @deprecated deprecatedtext
@exceção Adiciona um Throws subtítulo da documentação gerada, com o nome da classe e o texto de descrição. @exception class-name description
{@inheritDoc} Herda um comentário do nearest classe herdável ou interface implementável. Herda um comentário da classe superior imediata.
{@ligação} Insere um link em linha com o rótulo de texto visível que aponta para a documentação do pacote, classe ou nome de membro de uma classe referenciada. {@link package.class # member label}
{@linkplain} Idêntico a {@link}, exceto que o rótulo do link é exibido em texto simples do que a fonte do código. {@linkplain package.class # member label}
@param Adiciona um parâmetro com o nome do parâmetro especificado seguido pela descrição especificada à seção "Parâmetros". @param parameter-name description
@Retorna Adiciona uma seção "Devoluções" com o texto da descrição. @return description
@Vejo Adiciona um título "Consulte também" com um link ou entrada de texto que aponta para a referência. @ver referência
@serial Usado no comentário do documento para um campo serializável padrão. @serial field-description | incluir | excluir
@serialData Documenta os dados gravados pelos métodos writeObject () ou writeExternal (). @serialData data-description
@serialField Documenta um componente ObjectStreamField. @serialField field-name field-type field-description
@Desde a Adiciona um título "Desde" com o texto desde especificado à documentação gerada. @since lançamento
@throws As tags @throws e @exception são sinônimos. @throws class-name description
{@valor} Quando {@value} é usado no comentário de documento de um campo estático, ele exibe o valor dessa constante. {@value package.class # field}
@versão Adiciona um subtítulo "Versão" com o texto da versão especificado aos documentos gerados quando a opção -version é usada. @version version-text

Exemplo

O programa a seguir usa algumas das tags importantes disponíveis para comentários de documentação. Você pode usar outras tags com base em seus requisitos.

A documentação sobre a classe AddNum será produzida no arquivo HTML AddNum.html, mas ao mesmo tempo um arquivo mestre com um nome index.html também será criado.

import java.io.*;

/**
* <h1>Add Two Numbers!</h1>
* The AddNum program implements an application that
* simply adds two given integer numbers and Prints
* the output on the screen.
* <p>
* <b>Note:</b> Giving proper comments in your program makes it more
* user friendly and it is assumed as a high quality code.
*
* @author  Zara Ali
* @version 1.0
* @since   2014-03-31
*/
public class AddNum {
   /**
   * This method is used to add two integers. This is
   * a the simplest form of a class method, just to
   * show the usage of various javadoc Tags.
   * @param numA This is the first paramter to addNum method
   * @param numB  This is the second parameter to addNum method
   * @return int This returns sum of numA and numB.
   */
   public int addNum(int numA, int numB) {
      return numA + numB;
   }

   /**
   * This is the main method which makes use of addNum method.
   * @param args Unused.
   * @return Nothing.
   * @exception IOException On input error.
   * @see IOException
   */

   public static void main(String args[]) throws IOException {
      AddNum obj = new AddNum();
      int sum = obj.addNum(10, 20);

      System.out.println("Sum of 10 and 20 is :" + sum);
   }
}

Agora, processe o arquivo AddNum.java acima usando o utilitário javadoc da seguinte maneira -

$ javadoc AddNum.java
Loading source file AddNum.java...
Constructing Javadoc information...
Standard Doclet version 1.7.0_51
Building tree for all the packages and classes...
Generating /AddNum.html...
AddNum.java:36: warning - @return tag cannot be used in method with void return type.
Generating /package-frame.html...
Generating /package-summary.html...
Generating /package-tree.html...
Generating /constant-values.html...
Building index for all the packages and classes...
Generating /overview-tree.html...
Generating /index-all.html...
Generating /deprecated-list.html...
Building index for all classes...
Generating /allclasses-frame.html...
Generating /allclasses-noframe.html...
Generating /index.html...
Generating /help-doc.html...
1 warning
$

Você pode verificar toda a documentação gerada aqui - AddNum . Se você estiver usando o JDK 1.7, o javadoc não gera um grandestylesheet.css, então sugerimos baixar e usar a folha de estilo padrão do https://docs.oracle.com/javase/7/docs/api/stylesheet.css