当前位置: 主页 > JAVA语言

java变量命名规则-国家高速公路网命名和编号规则

发布时间:2023-04-17 10:10   浏览次数:次   作者:佚名

修饰符应该按照如下顺序排列:public, protected, private, abstract, static, final, synchronized。

类与接口的声明顺序(可用Eclipse的source->sort members功能自动排列):

1.静态成员变量 / Static Fields

2.静态初始化块 / Static Initializers

3.成员变量 / Fields

4.初始化块 / Initializers

5.构造器 / Constructors

6.静态成员方法 / Static Methods

7.成员方法 / Methods

8.重载自Object的方法如toString(), hashCode() 和main方法

9.类型(内部类) / Types(Inner Classes)

同等的类型,按public, protected, private的顺序排列。

3.注释规范(Document Convertions)

3.1 注释类型

3.1.1JAVA DOC注释

/** ….*/

3.1.2失效代码注释

国家高速公路网命名和编号规则_java变量命名规则_国家高速公路网路线命名和编号规则

由/*...*/界定,标准的C-Style的注释。专用于注释已失效的代码。

3.1.3代码细节注释

由//界定,专用于注释代码细节、

注意:即使有多行注释也仍然使用//,以便与用/**/注释的失效代码分开

除了私有变量外,不推荐使用行末注释。

class MyClass {

private int myField; // An end-line comment.

public void myMethod {

//a very very long

//comment.

if (condition1) {

//condition1 comment

}

}

}

3.2注释的格式

国家高速公路网路线命名和编号规则_国家高速公路网命名和编号规则_java变量命名规则

注释中的第一个句子要以(英文)句号、问号或者感叹号结束。Javadoc生成工具会将注释中的第一个句子放在方法汇总表和索引中。

为了在JavaDoc和IDE中能快速链接跳转到相关联的类与方法,尽量多的使用@see xxx.MyClass,@see xx.MyClass#find(String)。

Class必须以@author声明作者,体现代码责任。

但不需要声明@version与@date,由版本管理系统保留此信息。(II)

示例代码以

包裹。(II)

标识(java keyword, class/method/field/argument名,Constants)在注释中第一次出现时以{@linkxxx.Myclass}注解以便JavaDoc与IDE中可以链接。(II)

3.3注释的内容

3.3.1可精简的注释内容

注释中的每一个单词都要有其不可缺少的意义,注释里不写"@param name -名字"这样的废话。

如果该注释是废话,连同标签删掉它,而不是自动生成一堆空的标签,如空的@param name,空的@return。

3.3.2推荐的注释内容

对于调用复杂的API尽量提供代码示例。(II)

对于已知的Bug需要声明。(II)

在本函数中抛出的unchecked exception尽量用@throws说明。(II)

国家高速公路网命名和编号规则_java变量命名规则_国家高速公路网路线命名和编号规则

3.3.3Null规约

如果方法允许Null作为参数,或者允许返回值为Null,必须在JavaDoc中说明。

如果没有说明,方法的调用者不允许使用Null作为参数,并认为返回值是Null Safe(不会返回NULL)。

/**

* 获取对象.

*

* @ return the object to found or null if not found.

*/

Object get(Integer id){

...

}

3.3.4特殊代码注释

代码质量不高但能正常运行,或者还没有实现的代码用//TODO:声明

存在错误隐患的代码用//FIXME:声明

4.编程规范(Programming Conventions)

4.1基本规范

国家高速公路网命名和编号规则_java变量命名规则_国家高速公路网路线命名和编号规则

当API会面对不可知的调用者时,方法需要对输入参数进行校验,如不符合则抛出IllegalArgumentException,建议使用Spring的Assert系列函数。

代码中不能使用System.out.println(),e.printStackTrace(),必须使用logger打印信息。

变量,参数和返回值定义尽量基于接口而不是具体实现类java变量命名规则,如Map map = new HashMap();

用double而不是float

隐藏工具类的构造器,确保只有static方法和变量的类不能被构造实例。

在数组中的元素(如String [1]),如果不再使用需要设为NULL,直接用Collections类 而不是数组。

尽量使用protected 而不是 private,方便子类重载。

4.2异常处理

重新抛出的异常必须保留原来的异常,即throw new NewException("message", e); 而不能写成throw new NewException("message")。

在所有异常被捕获且没有重新抛出的地方必须写日志。

如果属于正常异常的空异常处理块必须注释说明原因java变量命名规则,否则不允许空的catch块。

4.3JDK5.0 规范

重载方法必须使用@Override,可避免父类方法改变时导致重载函数失效。

不需要关心的warning信息用@SuppressWarnings("unused"), @SuppressWarnings("unchecked"), @SuppressWarnings("serial") 注释。

4.4代码度量

4.4.1耦合度度量

国家高速公路网路线命名和编号规则_java变量命名规则_国家高速公路网命名和编号规则

DAC度量值不要不大于7 ( III )

解释:DAC(Data Abstraction Coupling)数据抽象耦合度是描述对象之间的耦合度的一种代码度量。DAC度量值表示一个类中有实例化的其它类的个数。

CFO度量值不要不大于20 ( III )

解释:CFO(Class Fan Out)类扇出是描述类之间的耦合度的一种代码度量。CFO度量值表示一个类依赖的其他类的个数。

4.4.2方法度量

方法(构造器)参数在5个以内 ( II )

太多的方法(构造器)参数影响代码可读性。考虑用值对象代替这些参数或重新设计。

方法长度150行以内 ( II )

CC 度量值不大于10(III )

解释:CC(CyclomaticComplexity)圈复杂度指一个方法的独立路径的数量,可以用一个方法内if,while,do,for,catch,switch,case,?:语句与&&,||操作符的总个数来度量。

NPath度量值不大于200 ( III )

解释:NPath度量值表示一个方法内可能的执行路径的条数。

4.4.3其他长度度量

布尔表达式中的布尔运算符(&&,||)的个数不超过3个(III)

if语句的嵌套层数3层以内(II)

文件长度2000行以内(II)

匿名内部类20行以内 ( II )

太长的匿名内部类影响代码可读性,建议重构为命名的(普通)内部类。