Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Documenting with Javadoc CS 3331 Section 6.1.4 and Appendix B of [Jia03] How to Write Doc Comments for the Javadoc TM Tool available from www.oracle.com.

Similar presentations


Presentation on theme: "1 Documenting with Javadoc CS 3331 Section 6.1.4 and Appendix B of [Jia03] How to Write Doc Comments for the Javadoc TM Tool available from www.oracle.com."— Presentation transcript:

1 1 Documenting with Javadoc CS 3331 Section 6.1.4 and Appendix B of [Jia03] How to Write Doc Comments for the Javadoc TM Tool available from www.oracle.com

2 2 Outline  Motivation  Writing Javadoc comments  Running the javadoc tool

3 3 Motivation  Why document programs? To make it easy to understand, e.g., for reuse and maintenance  What to document? Interface: syntactic vs. semantic (or behavioral) interfaces Internal working

4 4 Motivation (Cont.)  Why Javadoc? To combine source code with documentation and other reference materials To make it easier to keep the documentation and code in sync To generate API specifications (or interface specifications) from source code

5 5 Approach  Javadoc comments Attach special comments, called documentation comment (or doc comment) to classes, fields, and methods. /** … */  Javadoc tool Use a tool, called javadoc, to automatically generate HTML pages from source code.

6 6 Javadoc Example /** An abstract class representing various kinds of shapes. */ public abstract class Shape { /** The x-coordinate of this shape. */ private int x; // … /** Returns the x-coordinate of this shape. */ public int getX() { … } /** Sets the x-coordinate of this shape to the argument * x. */ public void setX(int x) { … } // … }

7 Example (Cont.)

8 8 The First Sentence  Used to build table-of-contents for packages and classes  Be descriptive but concise  Noun phrase for class and field  Verb phrase for method /** This class is an Abstraction of various shapes. */ public abstract class Shape { /** This method Returns the x-coordinate of this * point. */ public int getX() { … }

9 9 Javadoc Tags  Javadoc Tags Special keyword recognized by javadoc tool. Will be specially formatted  Common Tags @authorAuthor of the feature @versionCurrent version number @sinceSince when @paramMeaning of parameter @returnMeaning of return value @throwsMeaning of exception @seeLink to other features

10 10 Example /** An abstract class representing various kinds of * shapes. This class represents common features * of all shapes such as … * * @author Yoonsik Cheon * @version 1.0 (01/22/04) * @since version 0.5 */ public abstract class Shape { // … }

11 11 Specifying Parameters and Return Value  Syntax @param name description @return description @throws exception description  Example /** Returns the definition of a given word in this dictionary. * * @param word a word whose definition is being looked up. * @return the definition of the word; null if no definition is * found. * @throws NullPointerException if the word is null. */ public String lookup(String word) { /* … */ }

12 Specifying Parameters (Cont.)

13 13 Linking to Other Features  Syntax @see featureName where featureName is class, field, or method.  Example @see Dictionary @see #elems @see #lookup(String) @see SpanishDictionary#lookup(String) @see cs3331.Score#lookup(String)

14 14 Linking to Other Features (Cont.)  In-line link Used to refer features in a sentence. Syntax: {@link featureName} where featureName is class, field, or method.  Example /** Returns the definition of a given word in this dictionary. This * method is overridden here from the class {@link Dictionary} * to implementSpanish-specific, efficient lookup algorithm. * * @see Dictionary#lookup(String) * …. */ public String lookup(String word) { /* … */ }

15 Linking (Cont.)

16 16 More Example /** An abstract class representing various kinds of shapes. * * @author Yoonsik Cheon * @version 1.0 (08/22/04) * @since version 0.5 */ public abstract class Shape { /** Returns the x-coordinate of this shape. * @return the x-coordinate of this shape. */ public int getX() { … } /** Sets the x-coordinate of this shape to the argument x. * @param x the new x-coordinate. * @see #getX() */ public void setX(int x) { … } // … }

17 17 Exercise  Write Javadoc comments for the following class. public class ArrayStack { public ArrayStack(int size) { … } public Object push(Object elem) { … } public Object pop() throws StackEmptyException { … } private Object[] elems; private int idx; }

18 18 Running javadoc Tool  Similar to running javac, e.g., javadoc A.java javadoc A.java B.java javadoc *.java javadoc –d javadocs *.java  On Eclipse Select Export … > Java > Javadoc

19 19 Running javadoc (Cont.)  Linking to existing API specifications javadoc –link file:c:/Software/jdk8/docs/api *.java javadoc –link http://docs.oracle.com/javase/8/docs/api *.java  Including non-public features Javadoc –private *.java

20 20 Running javadoc (Cont.)  Other options, refer to JDK tool docs, e.g., http://docs.oracle.com/javase/8/docs/technotes/tools/win dows/javadoc.html

21 21 Other Resources  Many on-line tips, guidelines, and other documents, e.g., “How to Write Doc Comments for the Javadoc TM Tool” available at http://www.oracle.com/technetwork/articles/java/index- 137868.html


Download ppt "1 Documenting with Javadoc CS 3331 Section 6.1.4 and Appendix B of [Jia03] How to Write Doc Comments for the Javadoc TM Tool available from www.oracle.com."

Similar presentations


Ads by Google