Dokumentaatio koodikommentteina - Javadoc¶
Javadoc on dokumentaation generointiin tarkoitettu työkalu, joka tulee JDK:n mukana. Dokumentaatio kirjoitetaan määrämuotoisina kommentteina suoraan koodiin. Useat IDEt osaavat generoida dokumentaation suoraan HTML-muotoisena koodin Javadoc-kommenteista. Esimerkiksi, NetBeansissa Javadoc-dokumentaation voi luoda ajamalla Generate Javadoc klikkaamalla hiiren oikealla napilla projektin ikkunaa tai menusta Run->Generate Javadoc.
Javadoc-kommentin perusrakenne¶
Dokumentaatio kirjoitetaan koodiin Javadoc-kommenttina käyttäen standardimuotoista /* */
kommenttilohkoa siten, että
lohkon avaavassa erotin sisältään ylimääräisen *-merkin eli Javadoc-kommenttilohko kirjoitetaan /** */
kommenttierottimien väliin.
Kommenttilohko on rakenteeltaan seuraava. Dokumentaation teksteissä voi olla mukana HTML-tageja, kuten <p>
:
Luokkatason kommenttina kirjoitetaan ennen
public class Luokannimi
ja import-lauseiden jälkeen kuvaus itse luokasta. Lohko tyypillisesti sisältää tagit:@author
kertoo luokan toteuttajan tiedot@version
ohjelman sen hetkisen version numero. Tästä erillisenä@since
, joka vastaavasti kertoo, mistä versiosta lähtien kyseinen luokka on ohjelmassa ollut.
Jokaiselle metodille kirjoitetaan dokumentaatio, jossa:
Ensimmäinen kappale kuvaa dokumentoitavan metodin.
Kuvausta seuraa vaihteleva määrä metodia kuvaavia tageja. Esimerkiksi:
@param
metodin parametreja@return
metodin paluuarvoa@throws
kaikki metodin mahdollisesti heittämät poikkeukset
Esimerkiksi:
/**
* Yksinkertainen kaksiulotteisen avaruuden pistettä kuvaava luokka
* <p>
* @author N.N.
* @since 1.0
*/
public class Point2D {
/**
* x-akselin arvo
*/
private double x;
/**
* y-akselin arvo
*/
private double y;
/**
* Rakennin, joka ottaa parametreina x:n ja y:n arvot
* @param x X:n alkuarvo
* @param y Y:n alkuarvo
*/
public Point2D(double x, double y) {
this.x = x;
this.y = y;
}
/**
* Rinnalle myös toinen rakennin, joka ei vaadi parametreja.
* Toimii kuin Point2D(0, 0).
*/
public Point2D() {
this(0, 0); // Rakennin voi kutsua toista rakenninta this-viitteen kautta.
}
/**
* Palauttaa tilasta X:n arvon
* @return double X:n arvo
*/
public double getX() {
return x;
}
/**
* Asettaa X:lle uuden arvon
* @param x Uusi arvo X:lle
* @return ei mitään
*/
public void setX(double x) {
this.x = x;
}
Dokumentaation luomiseksi pakkaukselle tulee kirjoittaa pakkauksen kansioon erilliseen tiedostoon package-info.java
, johon kirjoitetaan
ennen pakkauksen määritystä dokumentaatiolohko, johon kirjoitetaan kuvaus pakkauksesta. Esim.
/**
* Sisältää Ohjelmointi 3:n JSON-harkan luokkatoteutukset
* <p>
* @author N.N.
* @since 1.0
*/
package fi.tuni.programming3;
Kaikki tagit löydät täältä.