关闭

JAVA程序编写规范

标签: javajavadocexceptionstring文档数据结构
1308人阅读 评论(0) 收藏 举报
分类:

 

  • exit()
    exit 除了在 main 中可以被调用外,其他的地方不应该调用。因为这样做不给任何代码代码机会来截获退出。一个类似后台服务地程序不应该因为某一个库模块决定了要退出就退出。
  • 异常
    申明的错误应该抛出一个RuntimeException或者派生的异常。
    顶层的main()函数应该截获所有的异常,并且打印(或者记录在日志中)在屏幕上。
  • 垃圾收集
    JAVA使用成熟的后台垃圾收集技术来代替引用计数。但是这样会导致一个问题:你必须在使用完对象的实例以后进行清场工作。比如一个prel的程序员可能这么写:

    	...
    	{
    		FileOutputStream fos = new FileOutputStream(projectFile);
    		project.save(fos, "IDE Project File"); 
    	}
    	...
    
    除非输出流一出作用域就关闭,非引用计数的程序语言,比如JAVA,是不能自动完成变量的清场工作的。必须象下面一样写:

    	FileOutputStream fos = new FileOutputStream(projectFile);
    	project.save(fos, "IDE Project File"); 
    	fos.close();
    
  • Clone
    下面是一种有用的方法:

      implements Cloneable
    
      public
        Object clone()
        {
          try {
            ThisClass obj = (ThisClass)super.clone();
            obj.field1 = (int[])field1.clone();
            obj.field2 = field2;
            return obj;
          } catch(CloneNotSupportedException e) {
            throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage());
          }
      }
    
  • final 类
    绝对不要因为性能的原因将类定义为 final 的(除非程序的框架要求)
    如果一个类还没有准备好被继承,最好在类文档中注明,而不要将她定义为 final 的。这是因为没有人可以保证会不会由于什么原因需要继承她。
  • 访问类的成员变量
    大部分的类成员变量应该定义为 protected 的来防止继承类使用他们。
    注意,要用"int[] packets",而不是"int packets[]",后一种永远也不要用。

    	public void setPackets(int[] packets) { this.packets = packets; }
    
    	  CounterSet(int size)
    		{
    		  this.size = size;
    		}
    

排版规范

  1. 关键词和操作符之间加适当的空格。
  2. 相对独立的程序块与块之间加空行
  3. 较长的语句、表达式等要分成多行书写。
  4. 划分出的新行要进行适应的缩进,使排版整齐,语句可读。
  5. 长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
  6. 循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。
  7. 若函数或过程中的参数较长,则要进行适当的划分。
  8. 不允许把多个短语句写在一行中,即一行只写一条语句。
  9. 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
  10. C/C++语言是用大括号‘{’和‘}’界定一段程序块的,编写程序块时‘{’和 ‘}’应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体 的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、 switch、case语句中的程序都要采用如上的缩进方式。

注释规范

定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)。

 

Java 的语法与 C++ 及为相似,那么,你知道 Java 的注释有几种吗?是两种?   

// 注释一行  

/* ...... */ 注释若干行

不完全对,除了以上两种之外,还有第三种,文档注释:   

/** ...... */ 注释若干行,并写入 javadoc 文档

  1. 注释要简单明了。

    String userName = null; //用户名

  2. 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
  3. 在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防
    止注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。
  4. 对代码的注释应放在其上方相邻位置,不可放在下面。对数据结构的注释应放在
    其上方相邻位置,不可放在下面;对结构中的每个域的注释应放在此域的右方;
    同一结构中不同域的注释要对齐。
  5. 变量、常量的注释应放在其上方相邻位置或右方。
  6. 全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以
    及存取时注意事项等的说明。
  7. 在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成日
    期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其它文
    件关系等);主要函数或过程清单及本文件历史修改记录等。

    /** * Copy Right Information : Neusoft IIT * Project : eTrain * JDK version used : jdk1.3.1 * Comments : config path * Version : 1.01 * Modification history :2003.5.1 * Sr Date Modified By Why & What is modified * 1. 2003.5.2 Kevin Gao new **/

  8. 在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描
    述;输入、输出及返回值说明;调用关系及被调用关系说明等

    /** * Description :checkout 提款 * @param Hashtable cart info * @param OrderBean order info * @return String */ public String checkout(Hashtable htCart, OrderBean orderBean) throws Exception{ }

  9. javadoc注释标签语法

    @author 对类的说明 标明开发该类模块的作者 @version 对类的说明 标明该类模块的版本 @see 对类、属性、方法的说明 参考转向,也就是相关主题 @param 对方法的说明 对方法中某参数的说明 @return 对方法的说明 对方法返回值的说明 @exception 对方法的说明 对方法可能抛出的异常进行说明


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:459728次
    • 积分:6147
    • 等级:
    • 排名:第4274名
    • 原创:117篇
    • 转载:174篇
    • 译文:2篇
    • 评论:25条
    文章分类