CodeConventions.pdf

(128 KB) Pobierz
44926583 UNPDF
Java
Code Conventions
September 12, 1997
 
Copyright Information
1997, Sun Microsystems, Inc. All rights reserved.
2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A.
This document is protected by copyright. No part of this document may be reproduced in any form by any means
without prior written authorization of Sun and its licensors, if any.
The information described in this document may be protected by one or more U.S. patents, foreign patents, or
pending applications.
TRADEMARKS
Sun, Sun Microsystems, Sun Microelectronics, the Sun Logo, SunXTL, JavaSoft, JavaOS, the JavaSoft Logo, Java,
HotJava Views, HotJJavaChips, picoJava, microJava, UltraJava, JDBC, the Java Cup and Steam Logo, “Write Once,
Run Anywhere” and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States
and other countries.
UNIX ® is a registered trademark in the United States and other countries, exclusively licensed through X/Open
Company, Ltd.
Adobe ® is a registered trademark of Adobe Systems, Inc.
Netscape Navigator is a trademark of Netscape Communications Corporation.
All other product names mentioned herein are the trademarks of their respective owners.
THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.
CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE
INCORPORATED IN NEW EDITIONS OF THE DOCUMENT. SUN MICROSYSTEMS, INC. MAY MAKE
IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS
DOCUMENT AT ANY TIME.
Please
Recycle
ii
44926583.002.png
June 2, 1997
1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1
Why Have Code Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 File Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.1
File Suffixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 File Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.1
Java Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.1.1
Beginning Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.2
Package and Import Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.3
Class and Interface Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Indentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1
Line Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1
Implementation Comment Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1.1
Block Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1.2
Single-Line Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1.3
Trailing Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1.4
End-Of-Line Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2
Documentation Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1
Number Per Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2
Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.3
Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.4
Class and Interface Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1
Simple Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2
Compound Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3
return Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.4
if, if-else, if-else-if-else Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.5
for Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.6
while Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.7
do-while Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.8
switch Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.9
try-catch Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8 White Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.1
Blank Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9 Naming Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10 Programming Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
10.1 Providing Access to Instance and Class Variables . . . . . . . . . . . . . . . . . . . 15
iii
1.2
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2
Common File Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4.2
Wrapping Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
8.2
Blank Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
 
June 2, 1997
10.2 Referring to Class Variables and Methods . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.3 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.4 Variable Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.5 Miscellaneous Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.5.1 Parentheses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.5.2 Returning Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.5.3 Expressions before ‘?’ in the Conditional Operator. . . . . . . . . . . 17
10.5.4 Special Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
11 Code Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
11.1 Java Source File Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
iv
 
2 - File Names
Java Code Conventions
1 - Introduction
1.1 Why Have Code Conventions
Code conventions are important to programmers for a number of reasons:
• 80% of the lifetime cost of a piece of software goes to maintenance.
• Hardly any software is maintained for its whole life by the original author.
• Code conventions improve the readability of the software, allowing engineers to
understand new code more quickly and thoroughly.
• If you ship your source code as a product, you need to make sure it is as well packaged
and clean as any other product you create.
1.2 Acknowledgments
This document reflects the Java language coding standards presented in the Java Language
Specification , from Sun Microsystems. Major contributions are from Peter King, Patrick
Naughton, Mike DeMoney, Jonni Kanerva, Kathy Walrath, and Scott Hommel.
For questions concerning adaptation, modification, or redistribution of this document, please
read our copyright notice at http://java.sun.com/docs/codeconv/html/Copyright.doc.html.
Comments on this document should be submitted to our feedback form at http://java.sun.com/
docs/forms/sendusmail.html.
2 - File Names
This section lists commonly used file suffixes and names.
1
44926583.001.png
Zgłoś jeśli naruszono regulamin