【JAVA-1】 Package名要使用小写字,中间用“.”分割【规定】
说明·原因
如无特殊规定,请将Package名统一成小写字。这是Java的一般规则。
例
package cn.co.AAA.BBB; //错误 package cn.co.aaa.bbb; //正确 |
【JAVA-2】 Package名要有意义【规定】
说明·原因
尽量给Package命名一个能联想到Package内容的名字。如果使用功能ID、流水号等来命名Package的话,不能马上明白其意思。遵守此规范,将提高代码的易读性。
例
package cn.co.aaa.bbb.s00001; //错误 package cn.co.aaa.bbb.station; //正确 |
【JAVA-3】 Package名是不可省略的【规定】
说明·原因
即使Package名长,也请尽量不要省略,而使用易懂的名字。
例
package cn.co.aaa.bbb.t.e.s.t; //错误 package cn.co.aaa.bbb. test; //正确 |
【JAVA-4】 package名中禁止使用除小写英语句半角字母以外的任何字符,但是根据需要可以使用下划线“_”【规定】
例
package cn.co.aaa.bbb.my_app; |
【JAVA-5】 Import包的次序是java.* →javax.* →中间件、库等提供的package→ 程序中的package【规定】
例
import java.util.HashMap; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Appender; import org.apache.log4j.Category;
import cn.co.aaa.bbb.thatpack; |
【JAVA-6】 Import需要指出import哪一个类,禁止import整个package【推荐】
例
import java.util.*; //错误 import java.util.HashMap; //正确 |
【JAVA-7】 Class的名称应该是一个名词短语。可以是“形容词/名词 + 名词”的形式【推荐】
例
public class InputDataStream{ public class OrderItem{ public class Developer{ |
【JAVA-8】 Class名要能体现其作用【推荐】
说明·原因
Class名中,请不要使用功能ID、流水号等难懂的名字。Class名要使用有意义的字符串,以便能联想到其Class的内容。这样将提高代码的易读性。
例
public class S0001 { //错误 public class Sample { //正确 |
【JAVA-9】 Class名中单词的第1个字母要大写【规定】
说明·原因
请大写Class名的第1个字母。当Class名由多个单词组成时,每个单词的第1个字母(段落)都要大写。这是Java的一般规则。
public class sampleclass { //错误 public class SampleClass { //正确 |
【JAVA-10】 异常Class名的最后要加上“Exception” 【推荐】
说明·原因
对异常Class名,请在名字最后加上“Exception”。统一此写法,将提高代码的易读性。
例
public class Sample extends Exception{ //错误 public class SampleException extends Exception{ //正确 |
【JAVA-11】 Interface名要基于Class名【推荐】
说明·原因
Interface的命名规则基本上要基于Class名。统一此写法,将提高代码的易读性。如果需要与Class名区分,请在开头加上“I”。
例
public class Sample implements ISample { //Interface名为ISample |
【JAVA-12】 抽象Class名要基于Class名【推荐】
说明·原因
抽象Class名的命名规则基本上要基于Class名。统一此写法,将提高代码的易读性。名字要以“Abstract”开始,再加上能联想到Subclass名的名字。
例
public abstract class AbstractSample { //抽象Class名为AbstractSample |
【JAVA-13】 实现Class名要基于Class名【推荐】
说明·原因
实现Class名的命名规则基本上要基于Class名。统一此写法,将提高代码的易读性。如果需要与Interface区分,请在最后加上“Impl”。
例
public class SampleImpl implements ISample { //实现Class名为SampleImpl |
【JAVA-14】 在能力附加型的Interface名后面加上“able” 【推荐】
说明·原因
对于Class来说,会存在附加某能力的Interface,如Runnable, Cloneable等。定义能力附加型的Interface时,请使用能表示其能力的形容词(~able)来命名。统一此写法,将提高代码的易读性。
例
public class Sample implements IPluggable { |
【JAVA-15】 Test Class名的格式为“测试对象Class名 + Test” 【推荐】
说明·原因
Test Class名的格式为“测试对象Class名 + Test”。统一此写法,将提高代码的易读性。以下的例子是考虑了JUnit 的例子。
例
public class SampleClassTest extends TestCase{ |
【JAVA-16】 进行测试或Package测试的所有的Class名的格式为“AllTest”或“Package名 + Test” 【推荐】
说明·原因
进行测试或Package测试的所有的Class名的格式为“AllTest”或“Package名 + Test”。统一此写法,将提高代码的易读性。
例
public class AllTest {
package cn.co.aaa.bbb; public class StationTest { |
【JAVA-17】 Method名只在段落时采用大写字【规定】
说明·原因
关于Method名,只有一个单词时,全部采用小写字。当由多个单词组成时,第2个以后的单词的第1个字母要大写。这是Java的一般规则。
例
public void Samplemethod() {} //错误 public void sampleMethod() {} //正确 |
【JAVA-18】 生成Object的Method名的格式是“"create"+Object名” 【推荐】
说明·原因
关于生成Object的Method(Factory Method)名,以“create”开始,并在其之后加上此Method生成的Object名。统一此写法,将提高代码的易读性。
例
public Sample createSample(){ |
【JAVA-19】 转换Method名的格式是“"to"+Object名” 【推荐】
说明·原因
关于将Object转换成其他Object的Method(Converter Method),以“to”开始,并在其之后加上转换后的Object的名字。统一此写法,将提高代码的易读性。
例
public Another toAnother(){ |
【JAVA-20】 Getter Method名的格式是“"get"+属性名” 【推荐】
说明·原因
关于取得属性的Method(Getter Method)的名字,以“get”开始,并在其之后加上取得的属性名。统一此写法,将提高代码的易读性。这是JavaBeans的规范。
例
public String getSampleName(){ |
【JAVA-21】 Setter Method名的格式是“"set"+属性名” 【推荐】
说明·原因
关于设定属性的Method(Setter Method)名字,以“set”开始,并在其之后加上设定的属性名。统一此写法,将提高代码的易读性。这是JavaBeans的规范。
例
public void setSampleName(String name){ |
【JAVA-22】 返回值为boolean类型的Method的名称应能看出true/false的状态【推荐】
说明·原因
关于返回boolean变量的Method名,要能看出其返回值的true/false指的是什么样的状态。推荐使用表示Yes或No的疑问句的描述形式(例:is+名片)。统一此写法,将提高代码的易读性。
例
public boolean isAsleep(){ public boolean canSpeak(){ public boolean hasExpired(){ public boolean exists(){ public boolean hasValue(){ |
【JAVA-23】 在查询方法中应使用find作为前缀【推荐】
说明·原因
例
public String findNameByID (String ID){ |
【JAVA-24】 常量全部为public static final、全部是大写字、段落用“_” 【规定】
说明·原因
常量全部用static final声明,变量名全部用大写字描述。常量名由多个单词组成时,各单词之间用“_”分开。统一此写法,将提高代码的易读性。另外,一般把常量的public修饰改成protected和private没有特别大的意义。
例
public static final int SAMPLE_VALUE = 10; |
【JAVA-25】 变量名要反映其作用【规定】
说明·原因
变量名要能反映出其作用。统一此写法,将提高代码的易读性。
例
private String str1; private String str2; //错误 private String serverName; private String clientName; //正确 |
【JAVA-26】 Instance变量名的格式是“’_’+变量名”【推荐】
说明·原因
关于Instance变量名,请用“_”和Method的Parameter名或Local变量名来区分。这样将提高代码的易读性。
例
private String name; public void setName(String name){ this.name = name; } //错误 private String _name; public void setName(String name){ this._name = name; } //正确 |
【JAVA-27】 Instance的字段名全部使用大写字【规定】
说明·原因
关于Instance的字段名,必须全部使用大写字。Instance的字段经常会是static及final。因此,需要对这些字段,按照与常量名相同的命名规则来命名。
例
interface IFV { int max = 1000; // 错误 } interface IFV { int MAX = 1000; // 正确 } |