Code Conventions for Java java代码写法规范小结
来源:互联网 发布:mac装win8无法加载 编辑:程序博客网 时间:2024/05/12 11:13
命名
- Class、Method、Properties的命名,原则上应以2~4个英语单词的连接,将所代表的业务逻辑表述清楚。
- 多个英语单词的组合,一般动词在前,名词在后。
- 当英语单词过长时,可以采用此单词的缩写。
- Class名:一般每个英语单词的首字母大写,其余小写。
- Method名:第一个英语单词全部小写,第二个英语单词开始,首字母大写。
- 变量名:一般全部小写。但有多个单词时,第二个单词开始,首字母大写。
- 常量:全部大写。当有多个单词时,各个单词之间以下划线("_")来连接。
- 建议使用的英语单词以及缩写,另见《命名规则》。
格式
- 每行不超过80列
- 缩进一律用空格,不可以用Tab。缩进用4个空格。
Code书写
- 在一个Class文件中,应以以下顺序书写:
- 文件的主注释
- package
- import
- Class/Interface的注释
- Class/Interface的申明
- static properties(类变量)的申明
- static以外的properties(instance变量)的申明
- constructor(构造器)
- public method
- protected method
- private method
- 申明Class或Method时,在左大括号("{")后,应立即换行。
- 在for/if等Code的地方,在左大括号("{")后,应立即换行。
- 最基本的,按照处理时的顺序,自上而下的书写Code。
- 关联紧密的代码,应有意识的做为一个Block连续编写。Block和Block间以空行分隔。
- 当调用其它函数,且参数过多时,写在一行里不利于阅读。这种情况下,建议换行,一行一个参数。
- 每行只写一条代码。禁止将多条代码书写在一行中。
- 在一个Class文件中,应以以下顺序书写:
import
- import时,绝对不可以用通配符("*")。实际用多少就import多少。
- 建议按照以下顺序书写:
- java.*
- javax.*
- 所用构架所提供的Package(ex: spring.*)
- 本次开发中新做的Package(ex: au.com.iwanttobuy.*)
变量
- 原则上,一个变量只为了一个目的使用,不可用在多个地方。
- 但是,用作循环计数的一般变量可以视为例外。
- 变量应统一在Method的最前端申明,并且在申明时赋以初值。例:
- String str = "abc";
- Object obj = null;
- int i = 1;
- 在申明数组变量时,应在类型后加上"[]"。例:
- OKint[] var = {1, 2, 4, 8};
String[] str = new String[10];NGint var[] = {1, 2, 4, 8};
String str[] = new String[10];
- OKint[] var = {1, 2, 4, 8};
- 尽可能在申明数组变量的同时,将数组维数定义清楚。
- 尽量不要使用2维以上的数组变量。
- Method的调用参数、构造函数的调用参数、临时变量等,不要与类变量/Instance变量重名。
常量
- 常量应先申明后使用。
- 为了便于维护,绝对禁止将常量hard coding在代码中。
- OKstatic final String XYZ = "ABC";
if (i = XYZ)NGif (i = "ABC")
Class/Instance变量
- 申明时,按照以下顺序:
- public
- protected
- private
- 不可省略,而使用默认的。
- 原则上,不可定义public的变量。应定义为private,然后配合对应的set()/get()函数来使用。
- 每行只可申明一个变量。
- OKint i;
int j;NGint i, j;
- OKint i;
- 申明时,按照以下顺序:
构造器
- 原则上,参数少的先写。
Method
- 在设计Method时,应在考虑通用性的原则下,以不可分割的机能为单位,划分每个Method。
- 同类型的Method,尽量采用同名异构的方式来设计。
- 如:getUser(), getUser(int accountSts), getUser(int accountSts, int countryId)
- 每个Method的代码量,尽量以不超过200Steps为限。
参考
- http://java.sun.com/docs/codeconv/
注释
- Header Comment
- Header Comment定义在Source File的最开始的地方,一个Source File只有一个Header Comment。
- Header Comment包含的内容有:版本,更新时间,更新者,更新内容。
- 变更历史记录的追加,应在单体测试完成后开始。
- 版本管理,建议参考SUN的版本管理标准:Version = Major.Minor.Micro
- Major(1位):重要的机能变更
- Minor(1位):机能的小规模扩展
- Micro(2位):细小的修改
- 范例:
- 注意格式缩进!
/*
* All Rights Reserved. Copyright(C) 2008 www.aaa.com, China
*
* History
* Version Update Date Updater Details
* 1.0.00 2008.01.01 name1 Create
* 1.0.01 2001.02.02 name2 Modified for Bug No.XXX
* 1.1.00 2001.03.03 name3 Add new function for Bugzilla No.YYY
*/
- 注意格式缩进!
- Class/Interface Comment
- Class Comment中可使用的Documentation Tag如下:
- @see - 有重要关联的CLASS或METHOD。CLASS须包含完整Package。
- @since - 单体测试完成时间。
- @author - 作者名。建议用英文名称,fistname + lastname
- @version - 版本信息。
- <br> - 换行
- <p> - 段落
- <code> - 文章内出现的相对短小的代码
- <pre> - Sample Code
- Class Comment的第一行应是简短的概括说明,随后才是详细说明。详细说明应包括前提条件、实现上的注意点等。
- 范例:
- 注意Comment部分和Source的格式缩进!
/**
* Class的概要说明
* <p>
* Class的详细说明
* </p>
* All Rights Reserved. Copyright(C) 2008 www.aaa.com, China
* @see java.lang.Exception
* @since 2008.01.01
* @author Sunny
* @version 1.1.00
*/
public class Class ○○Exception extends Exception
{
- 注意Comment部分和Source的格式缩进!
- Class Comment中可使用的Documentation Tag如下:
- Field(Attribute, Prperties) Comment
- 遵循JAVADOC规约,Comment应加上(/** ... */)。
- Field的用途、可能包含的值等,在此明确的说明。
- Method(Operation) Comment
- 遵循JAVADOC规约,Comment应加上(/** ... */)。
- Method具体实现什么机能,在此明确的说明。
- Method Comment中可使用的Documentation Tag如下:
- @see - 有重要关联的CLASS或METHOD。CLASS须包含完整Package。
- @param - 当Method包含参数时,参数的意思和用途要明确的说明。
- @return - 当Method有返回值时,返回值的意思要明确的说明。
- @throws - 当Method会往外抛Exception时,Exception的意思和抛出的Exception Class要明确的说明。
- Method Comment的第一行应是简短的概括说明,随后才是详细说明。详细说明应包括前提条件、实现上的注意点等。
- 特别是同名异构的Method的Comment,概要说明应有所区别,不要Copy成一样的。
- 范例:
- 注意Comment部分和Source的格式缩进!
/**
* Method的概要说明
* <p>
* Method 的详细说明
* </p>
* @see java.io.InputStream
* @param String param1 参数1的说明
* @param int param2 参数2的说明
* @return返回值的说明
* @throws抛出的Exception 的说明
* /
public int func(String param1, int param2) throws exception1
{
- 注意Comment部分和Source的格式缩进!
- Source Comment
- 块Comment
- 为多行代码加注释时使用。
- 多为记录数据构造、算法等的说明。
- 和被说明的代码用同样的格式缩进,注释前空一行。
-
/**
* 注释
* 注释
* /
- 行Comment
- 只用于Method内的代码说明。
- 写在被说明代码前,并采用同样的格式缩进。
-
// 注释
statement1;
- 后置Comment
- 被说明的对象的行较短,且说明内容较少的时候采用。
- 不推荐 。建议用行Comment。
-
fooBarStatement1; // 注释
myStatement2; // 注释
- 逻辑分叉Comment
- 当对if等逻辑分叉处理添加Comment时,写在逻辑分岔行的上方,同样的格式缩进。
- 逻辑分叉内的处理,在每个分叉内缩进了写。
-
// Check the parameter
if (userId == null) {
// return error
...
} else {
// normal operation
...
}
- 块Comment
- Header Comment
- Code Conventions for Java java代码写法规范小结
- Java编码规范 Code Conventions for the Java
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java 语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- Java语言编码规范(Java Code Conventions)
- 第九章内存管理
- ubuntu快捷键
- Centos6.2下一键安装heartbeat
- Calendar的用法及各种时间格式示例
- 在eclipse.ini中设置-vm
- Code Conventions for Java java代码写法规范小结
- 第十章对象初始化
- 黑马程序员---Java基础--09天(面向对象之四异常)
- 第十一章特性
- 第十二章类别
- Gridview连接access数据库更新数据学习心得
- Linux内存监控过程详解
- 第十三章协议
- 四款5000元左右亲民热销超级本推荐