Java代码编程格式规范

编码注意事项:

  • 类中方法定义私有 private修饰。
  • 主流程清楚明了,将子流程抽取,达到业务逻辑清楚明了。
  •  

为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程。系统继承的其它资源中的源程序也应按此规范作相应修改。

  1. 适用范围

本文档将作为java编程人员软件开发的编程格式规范。在项目Java部分的编码、测试及维护过程中,要求严格遵守。

  1. 命名规范

定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。

    1. Package 的命名

Package 的名字应该都是由一个小写单词组成。示例:unipost.trans

    1. Class 的命名

Class 的名字每个单词必须由大写字母开头而其他字母都小写的单词组成。示例:FileMng

    1. Class 成员的命名

变量、方法、属性:大小写混排的单词组成,首字母小写

示例: functionName、countNum、size

  1. Static Final 变量的命名

Static Final常量:大写单词组成,单词之间使用“_”连接

示例: MAX_INDEX

    1. 前后台变量名称

前台变量 fg_变量名

后台变量 bg_变量名

    1. 参数的命名

参数的名字必须和变量的命名规范一致。

    1. 数组的命名

数组应该总是用下面的方式来命名:

byte[] buffer;

而不是:

byte buffer[];

    1. 方法的参数

使用有意义的参数命名,如果可能的话,使用和要赋值的属性一样的名字:

setCounter(int size)

{

     this.size = size;

}

    1. 缩写

某些通用的缩写可以使用,如:

temp 可缩写为  tmp  ;

message 可缩写为  msg  ;

    1. 标识符命名中应注意的问题
      1. 除局部循环变量外变量名禁止取单个字符

对于变量命名,禁止取单个字符(如i、j、k...),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。

说明:变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。

      1. 不用数字定义名字

除非必要,不要用数字或较奇怪的字符来定义标识符。

示例:如下命名,使人产生疑惑。

void set_sls00( BYTE sls );

 

应改为有意义的单词命名

void setUdtMsgSls( BYTE sls );

      1. 用正确的反义词组命名

用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

说明:下面是一些在软件中常用的反义词组。

add / remove begin / end create / destroy

insert / delete first / last        get / set

increment / decrement put / get add / delete       

lock / unlock       open / close min / max

old / new start / stop next / previous

source / target show / hide send / receive

source / destination cut / paste up / down

示例:

int  minSum;

int  maxSum;

int  addUser( BYTE *userName );

int  deleteUser( BYTE *userName );

      1. 避免使用

应避免使用_EXAMPLE_TEST_之类以下划线开始和结尾的定义。

  1. 样式
    1. Java 文件样式

所有的 Java(*.java) 文件都必须遵守如下的样式规则

      1. 版权信息

版权信息必须在 java 文件的开头,示例:

/*

* -------------------------------------------------------

* Copyright (c) 2003, 国家邮政局

* All rights reserved.

* FileName:filename.java

* Description:简要描述本文件的内容

* History:

* Date           Author               Desc

* -------------------------------------------------------

*/

      1. Package/Imports

package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则建议用 * 来处理。

package com.nantian;

import java.io.*;

import java.util.Observable;

import translator;

这里 java.io.* 使用来代替InputStream and OutputStream 的。

    1. Class的样式
      1. Class的定义

包含了在不同的行的 extends 和 implements

public class CounterSet extends Observable

implements Cloneable

      1. Class Fields

类的成员变量:

/**

 * Packet counters

 */

protected int[] packets;

public 的成员变量一定要有注释而且必须生成文档(JavaDoc)。

proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。

      1. 构造函数

构造函数,它应该用递增的方式写(比如:参数多的写在后面)。示例:

public CounterSet(int size)

{

  this.size = size;

}

public CounterSet(int size,String name)

{

  this.size = size;

  this.name = name;

}

      1. 克隆方法

如果这个类是可以被克隆的:

public Object clone()

{

try

{

CounterSet obj = (CounterSet)super.clone();

obj.packets = (int[])packets.clone();

obj.size = size;

return obj;

}

catch(CloneNotSupportedException e)

{

throw new InternalError("Unexpected CloneNotSUpportedException: "+ e.getMessage());

}

}

      1. 类成员变量和方法的编写顺序

建议编写顺序为:

public  protected  private

final    static     transient

      1. main 方法

如果main(String[]) 方法已经定义了, 那么它应该写在类的底部。

    1. 代码样式

代码应该用 unix 的格式,而不是 windows 的(比如:回车变成回车+换行)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

benboerdong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值