定義規範的目的是為了使項目的代碼樣式統一,使程式有良好的可讀性。
包的命名 (全部小寫,由域名定義)
Java包的名字都是由小寫單詞組成。但是由于Java面向對象程式設計的特性,每一名Java程式員都 可以編寫屬于自己的Java包,為了保障每個Java包命名的唯一性,在最新的Java程式設計規範中,要求程式員在自己定義的包的名稱之前加上唯一的字首。 由于網際網路上的域名稱是不會重複的,是以程式員一般采用自己在網際網路上的域名稱作為自己程式包的唯一字首。
例如:net.frontfree.javagroup
類的命名 (單詞首字母大寫)
根據約定,Java類名通常以大寫字母開頭,如果類名稱由多個單詞組成,則每個單詞的首字母均應為大 寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由于類是設計用來 代表對象的,是以在命名類時應盡量選擇名詞。
例如: Graphics
方法的命名 (首字母小寫,字母開頭大寫)
方法的名字的第一個單詞應以小寫字母作為開頭,後面的單詞則用大寫字母開頭。
例如:drawImage
常量的命名 (全部大寫 ,常加下劃線)
常量的名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組成,則應該用下劃線來分割這些單詞。
例如:MAX_VALUE
參數的命名
參數的命名規範和方法的命名規範相同,而且為了避免閱讀程式時造成迷惑,請在盡量保證參數名稱為一個單詞的情況下使參數的命名盡可能明确。
Javadoc注釋
Java除了可以采用我們常見的注釋方式之外,Java語言規範還定義了一種特殊的注釋,也就是我們 所說的Javadoc注釋,它是用來記錄我們代碼中的API的。Javadoc注釋是一種多行注釋,以/**開頭,而以*/結束,注釋可以包含一些 HTML标記符和專門的關鍵詞。使用Javadoc 注釋的好處是編寫的注釋可以被自動轉為線上文檔,省去了單獨編寫程式文檔的麻煩。
例如:
/**
* This is an example of
* Javadoc
* @author darchon
* @version 0.1, 10/11/2002
*/
在每個程式的最開始部分,一般都用Javadoc注釋對程式的總體描述以及版權資訊,之後在主程式中 可以為每個類、接口、方法、字段添加 Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、接口、方法、字段所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句話後面可以跟 随更加詳細的描述段落。在描述性段落之後還可以跟随一些以Javadoc注釋标簽開頭的特殊段落,例如上面例子中的@auther和@version,這 些段落将在生成文檔中以特定方式顯示。
變量和常量命名
變量的命名
主要的的命名規範有以下三種:
Camel 标記法:首字母是小寫的,接下來的單詞都以大寫字母開頭
Pascal 标記法:首字母是大寫的,接下來的單詞都以大寫字母開頭
匈牙利标記法:在以Pascal标記法的變量前附加小寫序列說明該變量的類型
在Java我們一般使用匈牙利标記法,基本結構為scope_typeVariableName,它 使用1-3字元字首來表示資料類型,3個字元的字首必須小寫,字首後面是由表意性強的一個單詞或多個單詞組成的名字,而且每個單詞的首寫字母大寫,其它字 母小寫,這樣保證了對變量名能夠進行正确的斷句。例如,定義一個整形變量,用來記錄文檔數量:intDocCount,其中int表明資料類型,後面為表 意的英文名,每個單詞首字母大寫。這樣,在一個變量名就可以反映出變量類型和變量所存儲的值的意義兩方面内容,這使得代碼語句可讀性強、更加容易了解。 byte、int、char、long、float、 double、boolean和short。
資料類型/字首(附)
byte b
char c
short sh
int i
long l
string s
float f
double d
hashtable h
[] arr
List lst
Vector v
StringBuffer sb
Boolean b
Byte bt
Map map
Object ob
對于在多個函數内都要使用的全局變量,在前面再增加“g_”。例如一個全局的字元串變量:g_strUserInfo。
在變量命名時要注意以下幾點:
· 選擇有意義的名字,注意每個單詞首字母要大寫。
· 在一段函數中不使用同一個變量表示前後意義不同的兩個數值。
· i、j、k等隻作為小型循環的循環索引變量。
· 避免用Flag來命名狀态變量。
· 用Is來命名邏輯變量,如:blnFileIsFound。通過這種給布爾變量肯定形式的命名方式,使得其它開發人員能夠更為清楚的了解布爾變量所代表的意義。
· 如果需要的話,在變量最後附加計算限定詞,如:curSalesSum。
· 命名不相包含,curSales和curSalesSum。
· static final 變量(常量)的名字應該都大寫,并且指出完整含義。
· 如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一緻性。例如,如果在代碼的某些區域中使用intCnt,而在另一些區域中又使用intCount,就會給代碼增加不必要的複雜性。建議變量名中盡量不要出現縮寫。
· 通過在結尾處放置一個量詞,就可建立更加統一的變量,它們更容易了解,也更容易搜尋。例如,請使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量詞字尾有:First(一組變量中的第一個)、Last(一組變量中的最後一個)、Next(一組變量中的下一個變量)、Prev(一組變量中的上 一個)、Cur(一組變量中的目前變量)。
· 為每個變量選擇最佳的資料類型,這樣即能減少對記憶體的需求量,加快代碼的執行速度,又會降低出錯的可能性。用于變量的資料類型可能會影響該變量進行計算所産生的結果。在這種情況下,編譯器不會産生運作期錯誤,它隻是迫使該值符合資料類型的要求。這類問題極難查找。
· 盡量縮小變量的作用域。如果變量的作用域大于它應有的範圍,變量可繼續存在,并且在不再需要該變量後的很長時間内仍然占用資源。它們的主要問題是,任何類 中的任何方法都能對它們進行修改,并且很難跟蹤究竟是何處進行修改的。占用資源是作用域涉及的一個重要問題。對變量來說,盡量縮小作用域将會對應用程式的 可靠性産生巨大的影響。
關于常量的命名方法,在JAVA代碼中,無論什麼時候,均提倡應用常量取代數字、固定字元串。也就是 說,程式中除0,1以外,盡量不應該出現其他數字。常量可以集中在程式開始部分定義或者更寬的作用域内,名字應該都使用大寫字母,并且指出該常量完整含 義。如果一個常量名稱由多個單詞組成,則應該用下劃線“_”來分割這些單詞如:NUM_DAYS_IN_WEEK、MAX_VALUE。