0:00:05.010,0:00:07.399 Assim como existe toda [br]a documentação do Java 0:00:07.399,0:00:10.249 dentro do Java API Specification [br]na Oracle, 0:00:10.249,0:00:13.909 você também pode criar[br]a especificação do seu projeto 0:00:13.909,0:00:15.679 através do uso [br]de Javadoc. 0:00:15.679,0:00:19.679 Para poder utilizar o Javadoc[br]para documentar as suas classes, 0:00:19.679,0:00:24.570 métodos e atributos, [br]você precisa utilizar o "/**". 0:00:24.570,0:00:29.606 A partir do /**, você pode fazer [br]como se fosse uma outra programação. 0:00:29.606,0:00:34.370 Você vai poder utilizar tags[br]e referenciar as informações dessas tags. 0:00:34.370,0:00:37.931 Essas tags serão lidas[br]por um executável Javadoc, 0:00:37.931,0:00:41.710 que irá gerar todo um HTML[br]com todas essas informações. 0:00:41.710,0:00:43.581 Para utilizar [br]as tags do Javadoc 0:00:43.581,0:00:47.021 você sempre vai utilizar [br]arroba e o nome da tag. 0:00:47.021,0:00:50.841 As principais tags são:[br]@author, que é para você indicar 0:00:50.841,0:00:54.221 qual é o nome do desenvolvedor[br]daquele programa. 0:00:54.221,0:00:57.891 O @deprecated, que é para você[br]indicar que aquele método, 0:00:57.891,0:00:59.341 ou aquele atributo, [br]ou aquela classe, 0:00:59.341,0:01:02.276 já não está mais em uso,[br]e aí você pode indicar 0:01:02.276,0:01:06.141 qual a outra classe que está[br]substituindo aquela classe, 0:01:06.141,0:01:07.276 ou, enfim, [br]aquele método. 0:01:07.276,0:01:10.701 O @param, que é para definir[br]um parâmetro do método, 0:01:10.701,0:01:14.311 ou seja, quais são os parâmetros[br]e a descrição desses parâmetros 0:01:14.311,0:01:15.626 que estão de entrada[br]para um método. 0:01:15.626,0:01:20.551 O @return, que é para documentar[br]um valor de retorno de um método. 0:01:20.551,0:01:24.551 Só note o seguinte: essa tag não[br]deve ser utilizada para construtores 0:01:24.551,0:01:26.886 ou para métodos [br]que não têm retorno. 0:01:26.886,0:01:31.658 O @see, que é simplesmente para você [br]indicar uma outra documentação 0:01:31.658,0:01:34.428 relacionada àquele [br]método classe 0:01:34.428,0:01:37.031 ou atributo no qual [br]você está documentando. 0:01:37.031,0:01:40.228 O @since, que é para você[br]identificar desde quando 0:01:40.228,0:01:44.228 aquela alteração ou aquela [br]construção foi realizada. 0:01:44.228,0:01:47.348 O @exception, que,[br]assim como o @throws, 0:01:47.348,0:01:52.288 são utilizados para poder identificar[br]qual o tipo de erro ou de exceção 0:01:52.288,0:01:54.161 que um método[br]pode lançar. 0:01:54.161,0:01:58.378 E o @version, que é para você[br]identificar qual é o número daquela versão, 0:01:58.378,0:02:00.331 seja para um método[br]ou para uma classe. 0:02:00.331,0:02:03.537 Vou realizar agora um teste[br]fazendo a documentação 0:02:03.537,0:02:07.421 dentro da classe conta e depois [br]gerando toda essa documentação. 0:02:07.421,0:02:10.087 Logo de início, antes [br]da declaração da classe, 0:02:10.087,0:02:12.597 eu já identifiquei[br]informações sobre a classe. 0:02:12.597,0:02:15.237 Então, eu utilizei [br]o /**, 0:02:15.237,0:02:18.227 descrevi do que se trata[br]aquela classe, 0:02:18.227,0:02:20.717 coloquei qual é o autor[br]daquela classe 0:02:20.717,0:02:23.047 e qual é a versão[br]daquela classe. 0:02:23.047,0:02:27.654 Logo em seguida, eu criei a documentação[br]para cada um dos métodos da classe. 0:02:27.654,0:02:29.986 Logo acima[br]do método depositar, 0:02:29.986,0:02:32.716 eu coloquei a descrição [br]a respeito do método 0:02:32.716,0:02:36.716 e qual é a descrição[br]do parâmetro valor. 0:02:36.716,0:02:40.156 Logo em seguida, eu realizei[br]a documentação do método retirar. 0:02:40.156,0:02:42.869 Descrevi [br]o que o método fará, 0:02:42.869,0:02:45.889 também descrevi [br]o parâmetro de entrada 0:02:45.889,0:02:48.779 e coloquei mais uma tag,[br]que é a tag see, 0:02:48.779,0:02:50.969 que vai apontar [br]para um outro método, 0:02:50.969,0:02:52.678 que é o método[br]depositar, 0:02:52.678,0:02:56.509 para que, toda vez que qualquer[br]programador veja essa documentação, 0:02:56.509,0:02:59.999 ele visualize que, tanto o método[br]retirar quanto o método depositar, 0:02:59.999,0:03:01.398 têm alguma relação. 0:03:01.398,0:03:04.629 E, por fim, eu também documentei[br]o método verificarSaldo, 0:03:04.629,0:03:07.999 colocando simplesmente[br]a declaração do que o método faz 0:03:07.999,0:03:11.049 e também qual é o tipo[br]de retorno desse método, 0:03:11.049,0:03:14.528 informando que ele vai retornar[br]o valor do saldo da conta. 0:03:14.528,0:03:18.449 Note o seguinte: só de realizar[br]esses comentários no padrão Javadoc, 0:03:18.449,0:03:20.741 ao passar o mouse [br]em cima do método, 0:03:20.741,0:03:23.761 ele já mostra essa [br]descrição que nós fizemos 0:03:23.761,0:03:25.548 no padrão [br]de documentação. 0:03:25.548,0:03:28.851 Mas se eu quiser gerar[br]todo um HTML a respeito, 0:03:28.851,0:03:30.841 então eu tenho [br]um comando para fazer isso, 0:03:30.841,0:03:32.343 que é o comando[br]Javadoc. 0:03:32.343,0:03:34.761 Eu posso fazer esse [br]comando manualmente 0:03:34.761,0:03:36.431 através do comando[br]Javadoc, 0:03:36.431,0:03:40.091 que é um executável que fica [br]na mesma pasta do JDK 0:03:40.091,0:03:43.321 onde estão os comandos[br]de compilação e interpretação, 0:03:43.321,0:03:45.983 mas eu também posso vir[br]através do Eclipse. 0:03:45.983,0:03:49.291 Para poder gerar todo [br]o HTML dessa documentação, 0:03:49.291,0:03:51.891 basta eu acessar [br]a opção Project, 0:03:51.891,0:03:54.311 Generate Javadoc. 0:03:54.311,0:03:56.301 Nessa opção aqui eu [br]preciso identificar 0:03:56.301,0:03:59.051 qual é o comando [br]de geração desse Javadoc, 0:03:59.051,0:04:02.331 porque existem várias outras[br]ferramentas de geração. 0:04:02.331,0:04:05.551 Então, eu vou colocar qual é[br]o endereço onde está esse comando. 0:04:05.551,0:04:07.991 Normalmente [br]está na pasta bin. 0:04:07.991,0:04:10.031 Basta selecionar[br]o comando Javadoc 0:04:10.031,0:04:14.265 que está dentro [br]da pasta bin do seu JDK. 0:04:14.265,0:04:16.855 Uma vez selecionado[br]o comando Javadoc, 0:04:16.855,0:04:20.125 eu seleciono quais são[br]as classes dos projetos 0:04:20.125,0:04:22.095 que eu quero gerar [br]a documentação. 0:04:22.095,0:04:25.355 Nesse caso, só fizemos a documentação[br]a partir da classe conta. 0:04:25.355,0:04:27.455 Então, eu seleciono [br]a classe conta 0:04:27.455,0:04:29.465 e também coloco[br]qual a pasta destino 0:04:29.465,0:04:31.035 para gerar essa [br]documentação. 0:04:31.035,0:04:33.365 Clico em finish, [br]ele verifica se eu quero 0:04:33.365,0:04:37.065 alterar o local de destino [br]dessa documentação 0:04:37.065,0:04:40.565 ou também substituir[br]algumas informações que ali estão, 0:04:40.565,0:04:43.135 eu posso [br]simplesmente confirmar, 0:04:43.135,0:04:47.025 e é feita automaticamente [br]a geração de todo o HTML 0:04:47.025,0:04:48.580 com essa [br]documentação. 0:04:48.580,0:04:51.555 Ao término da execução, [br]você vai poder observar 0:04:51.555,0:04:55.555 na sua estrutura do projeto que ele[br]gerou uma nova pasta chamada doc 0:04:55.555,0:04:57.645 com diversos[br]arquivos HTML. 0:04:57.645,0:05:00.595 Basta você acessar [br]o arquivo index.html 0:05:00.595,0:05:02.485 no navegador [br]do próprio Eclipse 0:05:02.485,0:05:04.295 ou em qualquer [br]outro navegador. 0:05:04.295,0:05:07.725 Caso seja pelo Eclipse,[br]basta ir à opção Open With, 0:05:07.725,0:05:12.255 Web Browser, e ele vai abrir[br]toda a documentação do seu projeto 0:05:12.255,0:05:15.045 no padrão[br]de Java API Specification. 0:05:15.045,0:05:18.305 Claro que, nesse caso,[br]temos somente a classe conta, 0:05:18.305,0:05:21.465 e a classe conta com as descrições [br]que nós colocamos 0:05:21.465,0:05:24.040 lá na documentação[br]dentro do programa. 0:05:24.040,0:05:27.995 O Javadoc, ou qualquer outro[br]software de geração de documentação, 0:05:27.995,0:05:30.005 é muito importante[br]para a programação. 0:05:30.005,0:05:31.880 Eu sei que dá[br]uma certa preguiça, 0:05:31.880,0:05:35.305 mas é importante porque, de fato,[br]essa documentação pode ser muito útil 0:05:35.305,0:05:37.840 para outros desenvolvedores[br]desse seu projeto.