JAVA编程规范v100.doc
《JAVA编程规范v100.doc》由会员分享,可在线阅读,更多相关《JAVA编程规范v100.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、test受控文件编号版 本V1.00JAVA编程规范发布日期实施日期页码/页数第 22 页 共21 页文件修改控制页修改记录编号修改内容修改人修改日期附加说明1. “修改记录编号”的填写内容为:本次修改后的版本号“/”流水号,例如:V1.01/1。2. 一次修改可以修改文档的多个位置,流水号为对该版本修改的流水号。当版本变时,流水号归为1。目 录文件修改控制页11命名规范41.1 package (*)41.2 class (*)41.3 interface(*)41.4 Class 成员属性及变量的命名 (*)41.5 常量的命名(*)41.6 数组的命名(*)41.7 方法的参数(*)51
2、.8 方法命名(*)51.9 一般命名注意事项52 Java 源文件样式52.1 Class 代码布局:52.2 版权声明62.3 Package/Imports(*)62.4 Javadoc 注释72.5 Class Fields72.6 存取方法(getter,setter)72.7 构造方法(*)72.8 克隆方法82.9 类方法82.10 toString 方法92.11 main 方法(*)93 代码编写风格93.1 语句93.1.1 简单语句93.1.2 复合语句93.1.3返回语句103.2位置控制103.2.1 缩进103.2.2 行的长度103.2.3 折叠的行103.3 空
3、白处理113.3.1 空行113.3.2 空格113.4 声明123.4.1每行一个123.4.2 初始化123.4.3 位置124 程序编写规范134.1 使用方法来访问实例变量和类变量(*)134.2 引用类变量和类方法(*)134.3 常量(*)134.4 ?前的逻辑运算表达式134.5 变量赋值134.6 特殊注释144.7 例外144.8 方法的输入参数144.9 方法的返回值145 Struts编码规范145.1 Action和ActionForm的class命名145.2 ActionForm变量命名145.3 Action内部结构155.4 在ActionForm和数据对象之间
4、复制数据155.5 Struts标记库的使用166 注释166.1 注释格式166.1.1 javadoc风格的注释166.1.2 程序内部说明性注释166.2注释内容176.2.1 类或接口的注释176.2.2 类方法的注释186.2.3 类变量的注释186.2.4 类常量的注释187 编程实践问题187.1 exit()187.2 垃圾收集197.3 final 类197.4 性能197.5 使用 StringBuffer 对象197.6 换行208 附录:201命名规范1.1 package (*) 包名全部由小写的ASCII字母组成,用“.”分隔。在此项目中,所有的包均以“com.pr
5、osten.ticket”开头。1.2 class (*) 类名应当是名词,每个内部单词的头一个字母大写。应当使你的类名简单和具有说明性。用完整的英语单词或约定俗成的简写命名类名。【示例】public class UserManager1.3 interface(*)接口名应当是名词,每个内部单词的头一个字母大写。应当使你的接口名简单和具有说明性。用完整的英语单词或约定俗成的简写命名接口名。【示例】interface TicketManagement1.4 Class 成员属性及变量的命名 (*) 变量名全部由字母组成,头一个字母小写,以后每个内部单词的头一个字母大写。变量名应该短而有意义。变
6、量名的选择应该易于记忆。一个字符的变量名应避免,除非用于临时变量。通常临时变量名的命名规则为:i,j,k,m,n用于整数;c,d,e用于字符。【示例】private String lastName;1.5 常量的命名(*)Java 里的常量,是用static final 修饰的,应该用全大写加下划线命名,并且尽量指出完整含义。【示例】static final String SMTH_BBS=; 1.6 数组的命名(*)数组应该总是用下面的形式来命名:byte buffer; 1.7 方法的参数(*)和变量的命名规范一致,且应使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字。【示
7、例】setCounter(int size) this.size = size; 1.8 方法命名(*)方法的命名应当使用动词,头一个字母小写,以后每个内部单词的头一个字母大写。在方法名的选择上应意义明确便于记忆。对于属性的存取方法,应使用getXXX()和setXXX()名称,以isXXX(),hasXXX()来命名返回值为boolean 类型的方法。1.9 一般命名注意事项用有意义的名字命名变量首先,用完整的英语单词或约定俗成的简写命名变量。【示例】firstName zipCode 用复数命名Collection 类变量。Collection 包括数组,Vector 等。命名时使用复数:
8、【示例】customers classmates2 Java 源文件样式Java(*.java) 源文件应遵守如下的样式规则: 2.1 Class 代码布局:版权声明Package和Import语句Javadoc 注释或者其它文件头注释类或接口声明Fields 声明空行构造函数空行克隆方法空行其它方法(不包括main) 空行内部(Inner)类空行main()方法2.2 版权声明所有的源文件都应该以一个c风格的注释开始,以列出类名,版本信息,修改日期和版权声明。【示例】/* * Class name :* Version information :* Date :* Copyright 200
9、3 Prosten Technology Co.,Ltd.*/其他不需要出现在 javadoc 的信息也可以包含在这里。2.3 Package/Imports(*) package 行要在 import 行之前,中间空一行。将import 的classes 归类,按顺序罗列:a. Java 标准类(java.*) b. Java 扩充类(javax.*) c. 第三方类d. 你的应用程序的类注意在第三方类里进行注释,说明它们的来源。如果 import 行中包含了同一个包中的多个类,则可以用 * 来处理。【示例】package com.prosten.ticket.ticketmanagemen
10、t; import java.io.*; import java.util.Observable; import java.util.Date; import javax.sql.*; /Apache Xerces import org.apache.xml.*; import org.apache.xerces.dom.*; /Application classes import com.prosten.util.*; 这里 java.io.* 使用来代替InputStream 和 OutputStream 的引入。2.4 Javadoc 注释【示例】/* * Title: 类名 * Des
11、cription:(说明用中文)/* author: * date:(最后一次修改的提交时间) */2.5 Class Fields 类的成员变量:【示例】protected int packets; public 的成员变量必须以生成文档(JavaDoc) 的方式进行注释(/* */)。proceted、private 和 package 定义的成员变量如果名字含义明确的话,可以没有注释。Field 定义可遵从以下顺序:a. public 常量b. public 变量c. protected 常量d. protected 变量e. package 常量f. package 变量g. priv
12、ate 常量h. private 变量2.6 存取方法(getter,setter) 接下来是类变量的存取的方法。2.7 构造方法(*) 重载的构造方法应该用递增的方式写(参数多的写在后面)。【示例】public CounterSet() this(10); public CounterSet(int size) this.size = size; 2.8 克隆方法如果这个类是可以被克隆的,就应实现 clone 方法:【示例】public Object clone() try CounterSet obj = (CounterSet)super.clone(); obj.packets = (
13、int)packets.clone(); obj.size = size; return obj; catch(CloneNotSupportedException e) throw new InternalError(Unexpected CloneNotSUpportedException: + e.getMessage(); 2.9 类方法下面开始写类方法:【示例】/* * Set the packet counters * (such as when restoring from a database) */ protected final void setArray(int r1,
14、int r2, int r3, int r4) throws IllegalArgumentException if (r1.length != r2.length | r1.length != r3.length | r1.length != r4.length) throw new IllegalArgumentException(Arrays must be he same size); System.arraycopy(r1, 0, r3, 0, r1.length); System.arraycopy(r2, 0, r4, 0, r1.length); 2.10 toString 方
15、法每一个类都最好定义 toString 方法:【示例】public String toString() String retval = CounterSet: ; for (int i = 0; i data.length(); i+) retval += data.bytes.toString(); retval += data.packets.toString(); return retval; 2.11 main 方法(*) 如果类中包含main(String) 方法, 那么它应该写在类的底部。3 代码编写风格3.1 语句3.1.1 简单语句每一行包含至多一条语句。3.1.2 复合语句复
16、合语句是指附加形如封套结构的语句。 封套内的语句要比复合语句多缩进一个层次。 开头的括号因该在起始复合语句同一行的末尾;结尾的括号应该新起一行并和起始的复合语句保持同样缩进。 应当对所有诸如if-else,while,for,try-catch结构的控制语句都使用大括号,即使是单个语句,只要它是控制结构的一部分。【示例】if (condition) statements; else statements;/if-else 语句3.1.3返回语句有值返回的返回语句不应该使用括号,除非某些情况下为了使得返回值更加明显。【示例】return;return myDisk.size();return (
17、size ? size : defaultSize);3.2 位置控制3.2.1 缩进应当用四个空格作为缩排的单位。不要在源文件中保存Tab 字符(!)。以免在使用不同的源代码管理工具时Tab 字符将因为用户设置的不同而显示为不同的宽度。3.2.2 行的长度避免行长超过80个字符,因为这样不好被大多数终端显示和工具处理。3.2.3 折叠的行当表达在一行放不下时,根据下面的一般原则打断它: 在一个逗号后打断。 在运算符前打断。 高层次的打断优于低层次的打断。 让新起的行与上一行同一层次表达的开头对齐。 如果上面的方法导致代码混乱或者代码减少了合适的页边空白,那么使用缩进8个空格代替。【示例】下面
18、的例子打断了方法调用:someMethod(longExpression1, longExpression2, longExpression3,longExpression4, longExpression5);var = someMethod1(longExpression1,someMethod2(longExpression2,longExpression3);【示例】下面两个例子打断了算术表达式。第一个较好,因为打断发生在较高层次上。longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6;
19、【示例】语句的行折叠通常用8空格,这是因为4空格会使主体部分看起来困难。/USE THIS INDENTATION INSTEADif (condition1 & condition2) | (condition3 & condition4) |!(condition5 & condition6) doSomethingAboutIt();3.3 空白处理3.3.1 空行空行通过分开局部相关的代码部分,增加了可读性。在下列情况下总是使用两个空行: 源文件的不同部分之间 和接口定义之间在下列情况下总是使用一个空行: 在方法之间 方法里面的局部变量声明和它的第一个语句之间 在块注释(参见4.1.1
20、节)或单行注释(参见4.1.2节)之前 方法里面的逻辑部分之间,以提高可读性3.3.2 空格应该在下列情况下使用空格: 关键字和后面的括号之间应该使用一个空格。例如: while (true) . 注意在方法名和后面的括号之间不应该使用空格。这有助于分清关键字和方法调用。 逗号之后应该使用一个空格。 除了“.”之外的所有二元操作符应该用空格和操作数分开。对于一元操作符不使用空格。【示例】a = (a + b) / (c * d); while (d+ = s+) n+; printSize(size is + foo + n); for语句中的表达式应当用空格分开。【示例】for (expr1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 编程 规范 v100
限制150内