1、Java编码书写规范完整版Java编码书写规范版本修订记录序号简要说明(变更内容和变更范围)日期变更人3文档评审记录序号评审人角色评审日期签字评审意见1. 命名约定 11.1. 一般概念 11.2. 示范 12. 注释约定 42.1. 一般概念 42.2. 示范 42.3. 注释范围 53. 文件样式约定 53.1. Java(*.java) 53.1.1. 版权信息 63.1.2. Package/Imports 63.1.3. Class 63.1.4. Class Fields 73.1.5. 构造函数 83.1.6. 克隆方法 83.1.7. 类方法 (类的普通成员函数) 93.1.8
2、. toString 方法 93.1.9. main 方法 93.2. Java Server Page(*.jsp) 93.2.1. 版本信息 103.2.2. tag 103.2.3. 值输出 113.2.4. 嵌入代码段 114. 其它代码书写风格约定 114.1. 文档自动生成 114.2. 缩进 124.3. 页宽 124.4. 变量声明 144.5. 变量初始化 144.6. 局部变量声明 144.7. 空行 144.8. 大括号 154.9. 小括号() 154.10. 运算符 154.11. 参数间隔 154.12. JSP文件命名 164.13. Servlet类命名(待定)
3、 165. 编码指南 165.1. 对实例以及类变量的访问控制 165.2. 引用类变量和类方法 165.3. 常量 175.4. 变量赋值 175.5. 其它惯例 185.5.1. 圆括号 185.5.2. 返回值 185.5.3. 条件运算符?前的表达式 195.5.4. 特殊注释 195.5.5. 异常使用原则 191.命名约定除了以下几个特例之外,命名时必须始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。1.1.一般概念尽量使用完整的英文描述符采用适用于相关领域的术语采用大小写混合使名字可读尽量少用缩写,但如果用了,要明智地使用,
4、且在整个工程中统一避免使用长的名字(尽量小于 25 个字母)避免使用类似的名字,或者仅仅是大小写不同的名字避免使用下划线(除静态常量等)1.2.示范包(Package) 采用完整的英文描述符,应该都是由小写字母组成,格式为com.dcosft.*。如:com.dcsoft.ework.workflowmonscom.dcsoft.utility类(Class) 采用完整的英文描述符,所有单词的第一个字母大写,在上下文语境允许的情况下,可以使用缩略词,但必须保证整个开发小组的一致性,比如:number可缩写为num。 如:CustomerSavingsAccount接口(Interface) 采
5、用完整的英文描述符说明接口封装,所有单词的第一个字母大写。在接口名称的最前面使用大写的“I”表明这是一个接口。习惯上,名字后面加上后缀 able, ible 或者 er,但这不是必需的。 如:IContactableIPrompter组件/部件(Component) 使用完整的英文描述来说明组件的用途,前端加上组件类型。 如:btnOKlstCustomermenuFile异常(Exception) 采用异常类型的各单词首字母表示异常。 如:Excpetion eIOException ioe字段/属性 字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。 firstNamela
6、stName实参/参数 同字段/属性的命名规则 public void setFirstName(String firstName) this.firstName = firstName;局部变量 同字段/属性的命名规则获取成员函数 被访问字段名的前面加上前缀 get。 getFirstName()getLastName()布尔型的获取成员函数 所有的布尔型获取函数必须用单词 is 做前缀。isPersistent()isString()设置成员函数 被访问字段名的前面加上前缀 set。 setFirstName()setLastName()setWarpSpeed()普通成员函数 采用完整的
7、英文描述说明成员函数功能,第一个单词尽可能采用一个动词,第一个字母小写。 openFile()addAccount()静态常量字段(static final) 全部采用大写字母,单词之间用下划线分隔。 MIN_BALANCE,DEFAULT_DATE循环计数器 通常采用字母 i,j,k,m,n 或者 counter 都可以接受。 i, j, km,n,counter数组应该总是用下面的方式来命名:objectType variant,不得使用objectType variant方式。int arrInt;String args;对象实例 同组件/部件byte arrBuffer;StringB
8、uffer sbContent;2.注释约定2.1.一般概念注释应该增加代码的清晰度保持注释的简洁在写代码之前写注释注释出为什么做了一些事,而不仅仅是做了什么2.2.示范文档注释 在紧靠接口、类、成员函数和字段声明的前面注释它们。 /* 客户:客户是我们将服务和产品卖给的人或机构。*/String customer;C 语言风格注释 采用 C 语言风格的注释去掉不再使用但你仍想保留的代码。仍想保留是因为用户万一会改变想法,或者在调试过程中想让它暂时失效。 /* 这部分代码因为已被它之前的代码取代,由 B.Gustafsson, * 于 1999 年 6 月 4 日注释掉。如果两年之后还未使用,
9、将 * 其删除。. . . * (源代码) */单行注释 在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。注释符/后必须紧跟一个空格,然后才是注释信息。 / 遵照 Sarek 的规定,给所有/ 超过 $1000 的发货单/ 打 5% 的折扣。让利活/ 动于 1995年 2 月开始.if (condition) /* 处理条件 */ . 即约定主要的说明性注释使用文档注释;C风格注释只用来标注过期不用的代码;单行注释用来标注一些简单却容易混淆的逻辑,比较长的单独作为一行,较简洁的可以放在代码行尾。2.3.注释范围类:类的目的、即类所完成的功能,注释出采用的变量。接口:注释描述设
10、置接口的目的、它应如何被使用。成员函数:对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数注释要求说明完成什么功能,参数含义及返回什么; 普通成员函数内部控制结构:注释代码做了些什么以及为什么这样做,处理顺序等。实参/参数:注释参数含义、及其它任何约束或前提条件字段/属性:注释字段的描述局部变量:无特别意义的情况下不加注释3.文件样式约定3.1.Java(*.java)所有的 Java(*.java) 文件都必须遵守如下的样式规则:3.1.1.版权信息版权信息必须在 java 文件的开头,比如: /* * Copyright 2009 Wat Soft Co. Lt
11、d. * All right reserved.* Author * Date 2009-02-27 */作者名称要用中文。其他不需要出现在 javadoc 的信息也可以包含在这里。3.1.2.Package/Importspackage 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。package .stats;import java.io.*;import java.util.Observable;import hotlava.util.Application;这
12、里 java.io.* 是用来代替InputStream and OutputStream 的。3.1.3.Class类的注释 /* * Title: 文件名称 * Description: 类内容的简介 * 更新记录: * 格式:更新日期修改的版本操作人内容 * 2005-06-281.0张三完善create方法。 * * Copyright: Copyright (c) 2009 * Company: Wat Soft Co. Ltd. * version: 1.1 */类定义:包含了在不同行的 extends 和 implements public class CounterSet ex
13、tends Observable implements Cloneable3.1.4.Class Fields类的成员变量:/* * Packet counters */protected int packets;public 的成员变量必须生成文档(JavaDoc)。proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。类变量的存取:如类的成员变量已经有注释,类变量的存取方法可以没有注释。public int getPackets() return this.packets; public void setPackets(int packets
14、) this.packets = packets; 3.1.5.构造函数 构造函数:应该用递增的方式写(比如:参数多的写在后面)。 public CounterSet() this.size = 100;public CounterSet(int size) this.size = size;3.1.6.克隆方法如果这个类是可以被克隆的,那么下一步就是 clone 方法: public Object clone() try catch(CloneNotSupportedException e) 3.1.7.类方法 (类的普通成员函数)类的方法:/* * Set the packet counters * p
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1