Java语言编程规范--华为01年 下载本文

密级: 内部公开

DKBAXXXX-2001.12

命名规范

动词() 动词 + 宾语() 示例:

public String getType(); public boolean isFinished(); public void setVisible(boolean); public void show();

public void addKeyListener(Listener);

5.

属性名使用意义完整的英文描述:第一个单词的字母使用小写、

剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。 示例:

private customerName; private orderNumber; private smpSession;

6.

常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且

使用 final static 修饰。 示例:

public final static int MAX_VALUE = 1000;

public final static String DEFAULT_START_DATE = \

7.

属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员

变量时使用 this 引用,引用静态成员变量时使用类名引用。

示例:

public class Person {

private String name;

private static List properties;

2005-10-15, 11:40:39

31

密级: 内部公开

DKBAXXXX-2001.12

命名规范

public void setName (String name) {

this.name = name; }

public void setProperties (List properties) {

Person.properties = properties; }

4.2 建议

1.

常用组件类的命名以组件名加上组件类型名结尾。

示例: Application 类型的,命名以App 结尾——MainApp Frame 类型的,命名以Frame 结尾——TopoFrame Panel 类型的,建议命名以Panel 结尾——CreateCircuitPanel Bean 类型的,建议命名以Bean 结尾——DataAccessBean EJB 类型的,建议命名以EJB 结尾——DBProxyEJB Applet 类型的,建议命名以Applet 结尾——PictureShowApplet

2.

如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名。

示例:getCustomerInformation() 改为 getCustomerInfo()

3.

准确地确定成员函数的存取控制符号,不是必须使用 public 属性的,请使用 protected,不是必须使用 protected, 请使用 private。

示例: protected void setUserName(), private void calculateRate()

4.

含有集合意义的属性命名,尽量包含其复数的意义。

示例:customers, orderItems 2005-10-15, 11:40:39

32

密级: 内部公开

DKBAXXXX-2001.12

命名规范

2005-10-15, 11:40:39

33

密级: 内部公开

DKBAXXXX-2001.12

编码规范

5 编码规范 5.1 规则

1.

*明确方法功能,精确(而不是近似)地实现方法设计。一个函数

仅完成一件功能,即使简单功能也应该编写方法实现。

说明:虽然为仅用一两行就可完成的功能去编方法好象没有必要,但用方法可使功能明确化,增加程序可读性,亦可方便维护、测试。

2.

应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接

口方法本身负责,缺省是由方法调用者负责。

说明:对于模块间接口方法的参数的合法性检查这一问题,往往有两个极端现象,即:要么是调用者和被调用者对参数均不作合法性检查,结果就遗漏了合法性检查这一必要的处理过程,造成问题隐患;要么就是调用者和被调用者均对参数进行合法性检查,这种情况虽不会造成问题,但产生了冗余代码,降低了效率。

3.

明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组

相近的功能。

说明:划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的单一性。

示例:

数据类不能包含数据处理的逻辑。 通信类不能包含显示处理的逻辑。

4.

所有的数据类必须重载toString() 方法,返回该类有意义的内容。

说明: 父类如果实现了比较合理的toString() ,子类可以继承不必再重写。 示例:

public TopoNode {

private String nodeName;

2005-10-15, 11:40:39

34

密级: 内部公开

DKBAXXXX-2001.12

编码规范

public String toString() {

return \ } }

5.

数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-

finally 的finally中close()。

示例:

try {

// ... ... }

catch(IOException ioe) {

//... ... } finally { try {

out.close(); }

catch (IOException ioe) {

//... ... } }

2005-10-15, 11:40:39

35