Java命名規範+常量定義方法

Java命名規範

定義規範的目的是爲了使項目的代碼樣式統一,使程序有良好的可讀性。

包的命名  (全部小寫,由域名定義)

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
char c
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。

 

JAVA中定義常量方法

 

 

一、常量定義的基本注意事項。
  在Java語言中,主要是利用final關鍵字(在Java類中靈活使用Static關鍵字)來定義常量。當常量被設定後,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個常量時,需要注意如下內容:


  一是常量在定義的時候,就需要對常量進行初始化。也就是說,必須要在常量聲明時對其進行初始化。都跟局部變量或者成員變量不同。當在常量定義的 時候初始化過後,在應用程序中就無法再次對這個常量進行賦值。如果強行賦值的話,數據庫會跳出錯誤信息,並拒絕接受這一個新的值。(接口中定義的常量的訪問方法)


  二是final關鍵字使用的範圍。這個final關鍵字不僅可以用來修飾基本數據類型的常量,還可以用來修飾對象的引用或者方法。如數組就是一 個對象引用。爲此可以使用final關鍵字來定義一個常量的數組。這就是Java語言中一個很大的特色。一旦一個數組對象被final關鍵字設置爲常量數 組之後,它只能夠恆定的指向一個數組對象,無法將其改變指向另外一個對象,也無法更改數組(有序數組的插入方法可使用的二分查找算法)中的值。


  三是需要注意常量的命名規則。不同的語言,在定義變量或者常量的時候,都有自己一套編碼規則。這主要是爲了提高代碼的共享程度與提高代碼的易讀 性。在Java語言中,定義常量的時候,也有自己的一套規則。如在給常量取名的時候,一般都用大寫字符。在Java語言中,大小寫字符是敏感的。之所以採 用大寫字符,主要是跟變量進行區分。雖然說給常量取名時採用小寫字符,也不會有語法上的錯誤。但是,爲了在編寫代碼時能夠一目瞭然的判斷變量與常量,最好 還是能夠將常量設置爲大寫字符。另外,在常量中,往往通過下劃線來分隔不同的字符。而不想對象名或者類名那樣,通過首字符大寫的方式來進行分隔。這些規則 雖然不是強制性的規則,但是爲了提高代碼友好性,方便開發團隊中的其他成員閱讀,這些規則還是需要遵守的。沒有規矩,不成方圓。


  總之,Java開發人員需要注意,被定義爲final的常量需要採用大寫字母命名,並且中間最好使用下劃線作爲分隔符來進行連接多個單詞。在定義final的數據不論是常量、對象引用還是數組,在主函數中都不可以改變。否則的話,會被編輯器拒絕並提示錯誤信息。


  二、Final關鍵字與static關鍵字同時使用。


  由於Javal是面向對象的語言,所以在定義常量的時候還有與其它編程語言不同的地方。如一段程序代碼從編輯到最後執行,即使需要經過兩個過程,分別爲代碼的裝載與對象的建立。不同的過程對於常量的影響是不同的。現在假設有如下的代碼:


  Private static Random rd1=new Random(); //實例化一個隨機數生成對象。


  Private final int int1=rd1.nestInt(10); //生成隨機數並賦值給常量int1


  Private static final int int2=rd1.nestInt(10); //生成隨機數並賦值給常量int2


  這上面的語句的大致含義是,通過Java語言提供的隨機數類對象,生成隨機數。並把生成的隨機數賦值給常量int1與int2。細心的讀者會發 現,雖然同樣是賦值語句,但是以上兩個語句中有一個細小的差別,即在第二條語句中多了一個關鍵字static。關於關鍵字的用途,筆者在以前的文章中也有 談到過。這個是一個靜態的概念。即當利用這個關鍵字來修飾一個變量的時候,在創建對象之前就會爲這個變量在內存中創建一個存儲空間。以後創建對對象如果需 要用到這個靜態變量,那麼就會共享這一個變量的存儲空間。也就是說,在創建對象的時候,如果用到這個變量,那麼系統不會爲其再分配一個存儲空間,而只是將 這個內存存儲空間的地址賦值給他。如此做的好處就是可以讓多個對象採用相同的初始變量。當需要改變多個對象中變量值的時候,只需要改變一次即可。從這個特 性上來說,其跟常量的作用比較類似。不過其並不能夠取代常量的作用。

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