文档库 最新最全的文档下载
当前位置:文档库 › Java编程规范精简版

Java编程规范精简版

Java编程规范精简版
Java编程规范精简版

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

相关文档