- COMP.CS.140
 - 10. Työnjako ja tiimityöskentely
 - 10.2 Dokumentointi ja konventiot
 - 10.2.1 Dokumentaatio koodikommentteina - Javadoc
 
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 Luokannimija import-lauseiden jälkeen kuvaus itse luokasta. Lohko tyypillisesti sisältää tagit:@authorkertoo luokan toteuttajan tiedot@versionohjelman 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:
@parammetodin parametreja@returnmetodin paluuarvoa@throwskaikki 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ä.