`

Java编码规范[转]

阅读更多
一 命名惯例
1)类:名词或名词性词组,每个单词首字母大写;一般不使用缩写,除非其缩写
更通用和便于理解,如HTML; 
类命名举例:class Person; class SpringRain

2)方法:动词或动词性词组,首字母小写,第二个及以后的单词首字母大写;
方法命名举例:run(); displayInformation();

3)接口: 同"类"的命名规则
接口命名举例:interface Runner;

4)变量: 名词或名词性词组,首字母小写,第二个及以后的单词首字母大写;
不提倡使用下画线"_"和美元符"$"作为变量开头;单词间可以使用下画线分隔;
变量名不宜过长但也应有意义,除非是临时使用(例如只涉及几行代码)后即丢弃
的情况,不建议使用单个字母做变量名,常用的临时使用的变量名包括表示整数的
i,j,k,m,n和表示字母的c以及表示异常对象的e等.
变量命名举例:int age; int student_age; String studentName; Exception e;

5)常量:名词或名词性词组,每个单词的首字母大写;单词间使用下画线分隔.
常量命名举例:int MAX_LEVEL; double Comm_Tax;

6)包: 名词或名词性词组,全部小写;一般使用本公司/组织网站域名的逆序
后跟具体的软件内部模块名
包命名举例: package com.sun.java; package com.mycompany.db;

二 文件组织
1.建议一个源文件中只定义一个Java类或接口,无论该类或接口是否被声明为pulibc的,
文件名都以其来命名,源文件中各成分的出现顺序为:
1)开始的注释
2)package语句
3)import语句
4)类/接口声明

2.在一个Java类中,各种成分的排列顺序本无严格规定,也没有特别通用的惯例,
为便于掌握,给出一个推荐的顺序:
1)属性声明
2)构造方法声明
3)static语句
4)普通方法声明
5)main方法声明
6)内部类的声明

三 分隔和缩进
1.使用空行
在下述情况下使用单行的空白行来分隔:
1)在方法之间
2)在方法内部代码的逻辑段落小节之间
3)在方法中声明局部变量之后,具体的Java语句之前
4)在注释行之前
在同一个源文件中定义的多个类/接口之间使用双行的空白行来分隔

2.使用空格符
除正常的成分之间以空格符分隔名(如数据类型和变量名之间),在下述情况下也应使用一个空格符来分隔:
1)运算符和运算符之间,如: c = a + b;
2)在参数列表中的逗号后面,如: void m1(int year, int month) {}
3)在if,for,while待语句之后 如: if (a > b) {}

3.使用换行符
不建议在一行中写多条语句,一条语句的长度一般超过了80个字符时,应该换行

4.使用小括号
可以使用小括号来强行规定运算顺序

5.使用花括号
开始位置可以位于当前内容的尾部,也可以另起一行

6.使用缩进
在下述情况下应用缩进
1)类中的成分
2)方法体或语句块中的成分
3)换行时的非起始行
缩减量一般为在上一级成分的基础上再缩进四个空格,或跑到下一个制表位

四 声明语句
建议每行声明一个变量,并尽量在声明变量的同时对其进行初始化,除非其初值
尚不确定.局部变量应在其所在的方法或语句块的开头集中声明,而不应随用随声明.

五 下面给出一个程序,结合上面的介绍,注意下Java编码规范
/**
* Copyright: Copyright (c) 2002-2004
* Company: JavaResearch(http://www.javaresearch.org/)
* 最后更新日期:2003年4月3日
* @author Cherami
*/

package org.jr.util;

import java.util.*;

/**
* 此类中封装一些常用的List操作方法。
* 所有方法都是静态方法,不需要生成此类的实例,
* 为避免生成此类的实例,构造方法被申明为private类型的。
* @since  0.5
*/

public class ListUtil {
  /**
   * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
   */
  private ListUtil() {
  }

  /**
   * 将数组中的内容全部添加到列表中。
   * @param array 数组
   * @param list 列表
   * @since  0.5
   */
  public static void addArrayToList(Object[] array, List list) {
    if (array == null || list == null || array.length == 0) {
      return;
    }
    for (int i = 0; i < array.length; i++) {
      list.add(array[i]);
    }
  }

  /**
   * 将数组中的内容全部添加到列表中。
   * @param array 数组
   * @param list 列表
   * @param start 开始位置
   * @since  0.5
   */
  public static void addArrayToList(Object[] array, List list, int start) {
    if (array == null || list == null || array.length == 0) {
      return;
    }
    for (int i = 0; i < array.length; i++) {
      list.add(start + i, array[i]);
    }
  }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics