Java编程规范精简版(文档编号/ / 仅供内部使用)
Sheng Yuan Commercial Group
生源商业集团
All rights reserved
版权所有侵权必究
Revision record 修订记录
目录
前言 (4)
1范围 (5)
2术语和定义 (5)
3排版规范 (5)
3.1*缩进风格 (5)
3.2*较长的语句、表达式或参数 (5)
3.3*不允许把多个短语句写在一行中 (6)
3.4*if, for, do, while, case, switch, default 等语句自占一行, (6)
3.5*相对独立的程序块之间、变量说明之后必须加空行。 (6)
4注释规范 (7)
4.1*文件注释 (7)
4.2*类和接口的注释内容 (7)
4.3*类属性、公有和保护方法注释 (8)
4.4*注释的内容 (8)
5命名规范 (8)
5.1*包名 (8)
5.2*类名和接口名 (9)
5.3*方法名 (9)
5.4*方法get和set (9)
5.5*属性名 (9)
5.6*常量名 (10)
5.7*属性名约定 (10)
5.8*函数的命名 (10)
6附录 (11)
6.1配置开发工具 (11)
前言
本规范是参考国内软件标准的《软件编程规范总则》《Java编程规范》,SUN 公司《Java Coding Style Guide》基础上修改形成《Java编程规范精简版》,详细规范请阅读《Java编程规范》。
Java编程规范
1 范围
本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。本规范适用于使用J2EE以及Android平台Java语言编程的部门和产品。
2 术语和定义
格式:对此规范格式的说明。
说明:对此规范或建议进行必要的解释。
示例:对此规范或建议从正、反两个方面给出例子。
3 排版规范
3.1 *缩进风格
应与所修改文件或新建文件所在工程或模块保持一致。Android中要求分界符‘{’不独占一行,和前面一个语句于同一列。分界符‘}’独占一行,引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
示例:应如下书写。
for (...) {
... // program code
}
void example_fun( void ){
... // program code
}
3.2 *较长的语句、表达式或参数
较长的语句、表达式或参数(>100字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:
if (filename != null
&& new File(logPath + filename).length() <
LogConfig.getFileSize())
{
... // program code
}
public static LogIterator read(String logType, Date startTime, Date endTime,
int logLevel, String userName, int bufferNum)
3.3 *不允许把多个短语句写在一行中
不允许把多个短语句写在一行中,即一行只写一条语句示例:如下例子不符合规范:LogFilename now = null; LogFilename that = null;
应如下书写:
LogFilename now = null;
LogFilename that = null;
3.4 *if, for, do, while, case, switch, default 等语句自占一行,
if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while 等语句的执行语句无论多少都要加括号{}。
示例:如下例子不符合规范。
if(writeToFile) writeFileThread.interrupt();
应如下书写:
if(writeToFile) {
writeFileThread.interrupt();
}
3.5 *相对独立的程序块之间、变量说明之后必须加空行。
示例,如下例子不符合规范:
if(log.getLevel() < LogConfig.getRecordLevel())
{
return;
}
LogWriter writer;
应如下书写:
if(log.getLevel() < LogConfig.getRecordLevel())
{
return;
}
LogWriter writer;
int index;
4 注释规范
4.1 *文件注释
文件注释写入文件头部,包名之前的位置。说明:注意以 /* 开始避免被 JavaDoc 收集示例:
/*
Copyright ?, 1998-2014, Sheng Y uan Commercial Group
Author: //作者
Date: //版本及完成日期
*/
4.2 *类和接口的注释内容
类和接口注释放在 package 关键字之后,class 或者 interface 关键字之前。这样可以方便JavaDoc收集。
类的注释主要是一句话功能简述、功能详细描述,说明:可根据需要列出:版本号、生成
日期、作者、内容、功能、与其它类的关系等。如果一个类存在Bug,请如实说明这些Bug。
格式如下:
/**
* 一句话功能简述
* @author [作者]
* @see [相关类名]
* @since [模块版本]
*/
4.3 *类属性、公有和保护方法注释
类属性、公有和保护方法注释写在类属性、公有和保护方法上面。示例:
/**
* 简要描述
* ${tags}
*/
public void write()
4.4 *注释的内容
注释的内容要清楚、明了,含义准确,防止注释二义性。说明:错误的注释不但无益反而有害。
public void example( ) {
// 注释
CodeBlock One
}
5 命名规范
5.1 *包名
完全自己开发的包,包名采用域后缀倒置的加上自定义的包名,采用小写字母。包命名格式需要采取如下格式:cn.shengyuan.模块名
cn.shengyuan.模块名.小模块名
对于修改的代码,一律保持原先的包名不变化。
5.2 *类名和接口名
使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。示例:OrderInformation, CustomerList, LogManager, LogConfig, SmpTransaction。
5.3 *方法名
使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。
示例:
private void calculateRate();
public void addNewOrder();
5.4 *方法get和set
存取属性的方法采用setter 和 getter方法,动作方法采用动词和动宾结构。
格式:get + 非布尔属性名() is + 布尔属性名() set + 属性名() 动词() 动词 + 宾语() 示例:
public String getType();
public boolean isFinished();
public void setVisible(boolean);
public void show();
public void addKeyListener(Listener);
5.5 *属性名
属性名使用意义完整的英文描述:第一个单词必须是小写字母m(member的意思)、剩余单
词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。命名规范示例:
private mCustomerName;
private mOrderNumber;
private mSmpSession;
5.6 *常量名
使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰示例:
public final static int MAX_VALUE = 1000;
public final static String DEFAULT_START_DATE = "2001-12-08";
5.7 *属性名约定
属性名不可以和公有方法参数相同,如果相同,需要使用this来表示成员变量。属性名不能和局部变量相同。引用静态成员变量时使用类名引用。即使是在类内部使用,静态成员变量也需要使用类名进行引用。
示例如下:
public class Person {
private String mName;
private static List PROPERTIES;
public void setName (String name){
mName = name;
}
public void setProperties (List properties){
Person. PROPERTIES = properties;
}
}
5.8 *函数的命名
函数的命名需要采用“动宾”结构,动词说明需要做的操作如Add,Delete。宾语表示动作作用的对象。如addContact,deleteMmsItem。
函数的命名最好能做到“见名思意”。这样可以提高代码的可读性。
函数实现功能需要单一,函数名字和函数实现的功能需要保持一致。如addContact。那么只是执行添加一个联系人信息到通讯录中。而没有必要执行更新界面的操作。
6 附录
6.1 配置开发工具
*配置Eclipse代码空白字符为显示,请根据以下步骤配置:
1.配置Eclipse开发工具,将Tabs only改为Spaces only
依次选择:Window->Java->Code Style->Formatter,点击右侧“Edit”按钮,在弹出框中选择“Tab policy”后面的下拉框,选择“Spaces only”
2.Show invisible characters/显示空白字符
依次选择:Window->Java->Code Style->Formatter
3.Show whitespace characters/显示空白字符
依次选择:Window->General->Editors->Text Editors,然后勾选Show whitespace characters复选框。
*配置Eclipse代码的字符集:
1.依次选择:Window->General->Workspace