The information on this page is for Archive Purposes Only This page is not being actively maintained. Links within the documentation may not work and the information itself may no longer be valid. The last revision to this document was made on April 20, 1999 |
A file consists of sections that should be separated by blank lines and an optional comment identifying each section.
Files longer than 2000 lines are cumbersome and should be avoided.
For an example of a Java program properly formatted, see "Java Source File Example" on page 19.
Each Java source file contains a single public class or interface. When private classes and interfaces are associated with a public class, you can put them in the same source file as the public class. The public class should be the first class or interface in the file.
Java source files have the following ordering:
All source files should begin with a c-style comment that lists the class name, version information, date, and copyright notice:
/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/
The first non-comment line of most Java source files is a package
statement. After that, import
statements can follow. For example:
package java.awt;import java.awt.peer.CanvasPeer;
The following table describes the parts of a class or interface declaration, in the order that they should appear. See "Java Source File Example" on page 19 for an example that includes comments.
Part of Class/Interface Declaration | Notes | |
---|---|---|
1 | Class/interface documentation comment ( /**...*/ ) | See "Documentation Comments" on page 9 for information on what should be in this comment. |
2 | class or interface statement | |
3 | Class/interface implementation comment ( /*...*/ ), if necessary | This comment should contain any class-wide or interface-wide information that wasn't appropriate for the class/interface documentation comment. |
4 | Class ( static ) variables | First the public class variables, then the protected , then package level (no access modifier), and then the private . |
5 | Instance variables | First public , then protected , then package level (no access modifier), and then private . |
6 | Constructors | |
7 | Methods | These methods should be grouped by functionality rather than by scope or accessibility. For example, a private class method can be in between two public instance methods. The goal is to make reading and understanding the code easier. |