一、命名规范

1、 项目名全部小写

2、 包名全部小写

3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。

如:public class MyFirstClass{}

4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。

如:

int index=0;
       public void toString(){}

5、 常量名全部大写

如:public static final String GAME_COLOR=”RED”;

6、所有命名规则必须遵循以下规则:

1)、名称只能由字母、数字、下划线、$符号组成

2)、不能以数字开头

3)、名称不能使用JAVA中的关键字。

4)、坚决不允许出现中文及拼音命名。

 

二、注释规范

1、   类注释

在每个类前面必须加上类注释,注释模板如下:

/**
* Copyright (C), 2006-2010, ChengDu Lovo info. Co., Ltd.
* FileName: Test.java
* 类的详细说明
*
* @author 类创建者姓名
     * @Date    创建日期* @version 1.00
*/

 

2、   属性注释

在每个属性前面必须加上属性注释,注释模板如下:

/** 提示信息 */
private String strMsg = null;

 

3、   方法注释

在每个方法前面必须加上方法注释,注释模板如下:

/**
* 类方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @return 返回结果的说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

4、   构造方法注释

在每个构造方法前面必须加上注释,注释模板如下:

/**
* 构造方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

 

5、   方法内部注释

在方法内部使用单行或者多行注释,该注释根据实际情况添加。

如://背景颜色

       Color bgColor = Color.RED

类命名规范:

类名使用 UpperCamelCase 风格(首字母都大写),必须遵从驼峰形式。 例如: MessageUtil

抽象类命名使用 Abstract 或 Base 开头 ; 异常类命名使用 Exception 结尾 ; 测试类命名以它要测试的类的名称开始,以 Test 结尾。

对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别。

推荐实体类没有后缀名。

POJO 类中布尔类型的变量,都不要加 is ,否则部分框架解析会引起序列化错误。

 

其他:

方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格(第一个单词首字母小写,其他单词首字母大写),必须遵从驼峰形式。 例如: myFirstName

常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 例如:MAX_NAME_LENGTH

 

包名的书写规范 (Package)

推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性

包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词,包名统一使用单数形式。如果类名有复数含义,类名可以使用复数形式。

实际应用中:

  各层命名规约:
  A) Service / DAO 层方法命名规约
    1 ) 获取单个对象的方法用 get 做前缀。
    2 ) 获取多个对象的方法用 list 做前缀。
    3 ) 获取统计值的方法用 count 做前缀。
    4 ) 插入的方法用 save( 推荐 ) 或 insert 做前缀。
    5 ) 删除的方法用 remove( 推荐 ) 或 delete 做前缀。
    6 ) 修改的方法用 update 做前缀。
  B) 领域模型命名规约
    1 ) 数据对象: xxxDO , xxx 即为数据表名。
    2 ) 数据传输对象: xxxDTO , xxx 为业务领域相关的名称。
    3 ) 展示对象: xxxVO , xxx 一般为网页名称。
    4 ) POJO 是 DO / DTO / BO / VO 的统称,禁止命名成 xxxPOJO 。

 

推荐:

如果使用到了设计模式,建议在类名中体现出具体模式。

接口类中的方法和属性不要加任何修饰符号 (public 也不要加 ) ,保持代码的简洁性,并加上有效的 Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。

 

注释的书写规范 (Javadoc)
Java除了可以采用我们常见的注释方式(//、/* */)之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,以/**开头,而以*/结束, Javadoc 注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 推荐使用。

Javadoc注释主要涉及范围:类、属性、方法。

import java.net.InetAddress;

import java.util.Arrays;

/**

 * 该类的整体性描述。

 *

 * @author 作者

 * @version 1.0, 05/22/07

 * @since 1.0

 */

public class ChannelBinding {

/**

 * 对该变量的备注信息

 */

private InetAddress initiator;

/**

 * 对该变量的备注信息

 */

private InetAddress acceptor;

/**

 * 对该变量的备注信息

 */

    private  byte[] appData;

   

    /**

     * 对该类的构造函数的备注信息。

     *

     * @param initAddr 对参数的备注。

     * @param acceptAddr对参数的备注。

     * @param appData对参数的备注。

     */

    public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr,

              byte[] appData) {

         initiator = initAddr;

         acceptor = acceptAddr;

         if (appData != null) {

              this.appData = new byte[appData.length];

              java.lang.System.arraycopy(appData, 0, this.appData, 0,

                   appData.length);

         }

    }

  

    /**

     * 对该类的具体一函数的备注信息

     *

     * @param obj 参数的备注信息

     * @return 返回值的备注信息

     */

    public boolean equals(Object obj) {

         if (this == obj)

              return true;

         if (! (obj instanceof ChannelBinding))

              return false;

         ChannelBinding cb = (ChannelBinding) obj;

         return Arrays.equals(appData, cb.appData);

    }

}

驼峰法则:

将所有字母都小写(包括缩写),然后将单词的第一个字母大写。

每个单词的第一个字母都大写,来得到大驼峰式命名。

除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名。

 

为避免歧义,文中小驼峰法统称为驼峰法,大驼峰/帕斯卡法统称为大驼峰法则。

 

1. Package

项目包命名规则:<域名反转>.<团队名>.<项目名>。相关项目可使用<域名反转>.<团队名>.<父项目名>.<子项目名>的命名法则。

命名必须全部使用英文小写字母,禁止使用“下划线”等字符。(除常量外,Java命名习惯中均不推荐使用下划线等字符)

示例:

com.cnblogs.niceboat.soyteam.anticorruptionsystem

 

2. Class/Object、Interface

类和接口使用大驼峰命名法

抽象类使用“Abstract”做为类命名的开头

Exception类命名使用“Exception”做为类命名的结尾

Test类使用“Test”做为类命名的结尾

 

在面向接口编程中,接口的实现类的命名规则为:<接口名>+"Impl"。禁止使用匈牙利命名法。

示例(正确):

接口

实现类

HandsomeProvider

HandsomeProviderImpl

 

 

 

 

匈牙利命名法(不推荐):

接口

实现类

IHandsomeProvider

HandsomeProvider

 

 

 

 

3. Method/Function

方法的命名使用驼峰法,一般使用动词或动词+名词组合。

设置/获取某个值的方法,命名为setV/getV

返回长度的方法,命名为length

判断布尔值的方法,命名为isV

将对象转换为某个特定类型的方法应该命名为toT

示例:

getSecretStage()

length()

isEmpty()

toSpecialFormat()

 


 

 

4. Variable

变量的命名使用驼峰法

示例:

OpenId

 

常量命名使用大写字母并用下划线分割

示例:

MAX_SUITABLE_SIZE

 

 

关于驼峰法则的具体命名规范(尤其是涉及到单词缩写),参见此表:

原文

驼峰法则

大驼峰法则

不推荐

XML HTTP request

xmlHttpRequest

XmlHttpRequest

XMLHTTPRequest

new customer ID

newCustomerId

NewCustomerId

newCustomerID

inner stopwatch

innerStopwatch

InnerStopwatch

innerStopWatch

support IPv6 on iOS

supportIpv6OnIos

SupportIpv6OnIos

supportIPv6OniOS

Anglo-Saxon England

angloSaxonEngland

AngloSaxonEngland

Anglo-SaxonEngland