Java編程規範整理

分享一份網友整理的編程過程中的命名規範


包命名

包名按照域名的範圍從大到小逐步列出,恰好和Internet上的域名命名規則相反。

由一組以“.”連接的標識符構成,通常第一個標識符爲符合網絡域名的兩個或者三個英文小寫字母。

People
TestPage
XMLExample

 

類,接口命名

類的名字必須由大寫字母開頭而單詞中的其他字母均爲小寫;如果類名稱由多個單詞組成,則每個單詞的首字母均應爲大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由於類是設計用來代表對象的,所以在命名類時應儘量選擇名詞。

People
TestPage
XMLExample

方法名

方法的名字的第一個單詞應以小寫字母作爲開頭,後面的單詞則用大寫字母開頭。可以爲動詞或動詞+名詞組合。

設置/獲取某個值的Method,應該遵循setV/getV規範

返回長度的Method,應該命名爲length

測試某個布爾值的Method,應該命名爲isV

將對象轉換爲某個特定類型的Mehod應該命名爲toF

getDate();
length();
isReady();
toOracleFormat();

 

 

變量名

  1. 普通變量命名應該採用首字母小寫,其他字母首字母大寫的方式。
  2. final static變量的名字應該都大寫,並且指出完整含義。如果一個常量名稱由多個單詞組成,則應該用下劃線來分割這些單詞如。
NUM_DAYS_IN_WEEK
MAX_VALU

 3. 如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性

context=ctx
message=msg

 4. 通過在結尾處放置一個量詞,就可創建更加統一的變量

First(一組變量中的第一個)
Last(一組變量中的最後一個)
Next(一組變量中的下一個變量)
Prev(一組變量中的上一個)
Cur(一組變量中的當前變量)

 5. 無論什麼時候,均提倡應用常量取代數字、固定字符串。也就是說,程序中除0,1以外,儘量不應該出現其他數字。

 6. 索引變量:i、j、k等只作爲小型循環的循環索引變量。

 7. 邏輯變量:避免用flag來命名狀態變量,用is來命名邏輯變量。

if(isClosed){
    dosomeworks;
    return;
}

數組

總是使用以下方式定義數組:

int[] arr = new int[10];

禁止使用C語言的是形式:

禁止
int arr[] = new int[10];

集合

數組或者容器推薦命名方式爲名詞+s的方式,例如:

List<Person> persons = getPerson();
for(Person person : persons){
    dosomeworks;
}

泛型

應該儘量簡明扼要(最好是一個字母),以利於與普通的class或interface區分

Container中的Element應該用E表示;Map裏的key用K表示,value用V;Type用T表示;異常用X表示

如果需要接收多個Type類型的參數,應該用鄰接T的大寫字母——例如S——來依次表示,當然也可以用T1, T2這樣的方式

複製代碼
public
class HashSet<E> extends AbstractSet<E> {…}

public
class HashMap<K, V> extends AbstractMap<K, V> {…}

public
class ThreadLocal<T> {…}

public
interface Functor<T, X extends Throwable> {

    T val() throws X;

}
複製代碼

推薦的命名

 1.當要區別接口和實現類的時候,可以在類的後面加上“Impl”。

interface Container

class ContainerImpl

 2.Exception類最好能用“Exception”做爲類命名的結尾

DataNotFoundException

InvalidArgumentException

 3.抽象類最好能用“Abstract”做爲類命名的開頭

AbstractBeanDefinition

AbstractBeanFactory

  4. Test類最好能用“Test”做爲類命名的結尾

ContainerTest

 5.簡稱與縮寫(不推薦使用)

cp代表colorPoint

buf代表buffer

off代表offset

len代表length

除非是在循環中,否則一般不推薦使用單個字母作爲變量名,不過也有例外,即約定俗成的單個字母

b代表byte

c代表char

d代表double

e代表Exception

f代表float

i, j, k代表整數

l代表long

o代表Object

s代表String

v代表某些類型的特定值

代碼風格

花括號

花括號統一採用以下格式:

if(bool experssion){
    dosomework;
}

除非花括號中爲空,不然任何情況下不能省略花括號,並且花括號必須換行,例如:

if(i==0){
    return;
}
while(true)    {}

以下寫法禁止出現:

禁止
if(i != 0)  return;
禁止
if(i !=0)    {return;}

括號

括號的前,後一個字符不需要空格,例如:

Person p = new Person(“Jack”, 17);

空格

  1. 逗號之後緊跟一個空格。
Person p = new Person(“Jack”, 16, “China”);

 2. 二元操作符前後跟空格。

int i = a + b – c * d;

 3. 一元操作符不需要空格,for語句分號後有空格。

for(int i = 0; I < 10; i++){
    dosomework;
}

 4. 括號前後不需要空格

  1. 類的定義結構按照順序爲:

1)         常量

2)         成員變量

3)         構造函數

4)         成員函數

5)         get和set方法

各個部分之間留出一個空行。

例如:

複製代碼
規範類模板:
class Person{
    private final static int MAX_AGE = 100;

    private String firstname = “Jack”;

    public Person(){}
public Person(String firstname){
    this.firstname = firstname;
}

public void doExercise(){
    dosomeworks;
    run();
}
private void run(){
    dosomeworks;
}

public getFirstname(){
    return firstname;
}
public setFirstname(String firstname){
    this.firstname = firstname;
}
}
複製代碼

 2.構造函數

1)         參數爲空的構造函數出現在最上方

2)         有調用關係的構造函數相鄰

3)         參數儘量由少到多從上至下排序

 3.使用成員變量

在類的方法內引用成員變量了命名衝突以外,不使用this。非特殊情況在類的方法內都不使用get和set方法存取成員變量。

 4.方法

有調用關係的方法儘量放在相鄰的位置,public和private方法可以交叉放置。

 5.get和set方法,所有需要公開的成員變量都要符合良好的javabean規範,提供get和set方法,儘量使用IDE工具自動生成。

Javadoc註釋

在每個程序的最開始部分,一般都用Javadoc註釋對程序的總體描述以及版權信息,之後在主程序中可以爲每個類、接口、方法、字段添加 Javadoc註釋,每個註釋的開頭部分先用一句話概括該類、接口、方法、字段所完成的功能,這句話應單獨佔據一行以突出其概括作用,在這句話後面可以跟隨更加詳細的描述段落。在描述性段落之後還可以跟隨一些以Javadoc註釋標籤開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯示

參考文檔

Java命名規範

http://java.chinaitlab.com/base/834496.html

Java代碼規範

http://www.doc88.com/p-733474983375.html

java應用命名規範

http://home.51.com/renjanely/diary/item/10051465.html

【J2SE系列】Java命名規範

http://my.oschina.net/iblike/blog/34100\

開發筆記:Java命名規範

http://blog.donews.com/maverick/archive/2005/10/12/585459.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章