Java命名規範和程式設計風格
一 命名規範
1.包的命名
a 小寫單片語成
b 加上惟一的字首。一般採用自己在網際網路上的域名作為自己程式包的惟一字首。
c 格式 “com.公司名.專案名.模組名....”
e.g:net.frontfree.javagroup
附:
indi:個體專案,指個人發起,但非自己獨自完成的專案,可公開或私有專案,copyright主要屬於發起者。
包名為“indi.發起者名.專案名.模組名.……”。
pers :
個人專案,指個人發起,獨自完成,可分享的專案,copyright主要屬於個人。
包名為“pers.個人名.專案名.模組名.……”。
priv
私有專案,指個人發起,獨自完成,非公開的私人使用的專案,copyright屬於個人。
包名為“priv.個人名.專案名.模組名.……”。
team :
團隊專案,指由團隊發起,並由該團隊開發的專案,copyright屬於該團隊所有。
包名為“team.團隊名.專案名.模組名.……”。
com :
公司專案,copyright由專案發起的公司所有。
包名為“com.公司名.專案名.模組名.……”。
2.類的命名
a 大寫字母開頭,一個單詞中的其他字母均為小寫。
b 將每個單詞的首字母均用大寫,例如TestPage。
c 包含單詞縮寫,則建議將這個詞的每個字母均用大寫,如:XMLExample
d 類名儘量選擇名詞。
3.方法的命名
a 以小寫字母開頭,後面的單詞則建議用大寫字母開頭。駝峰式。
e.g: sendMessge()。
4.常量的命名
a 都使用大寫字母,並且指出該常量完整含義。
b 多個單詞用下劃線來分割。
e.g:MAX_VALUE。
5.引數的命名
a 引數的命名規範和方法的命名規範相同,引數的命名儘可能明確。
6.Javadoc註釋
Java除了可以採用常見的註釋方式之外,Java語言規範還定義了一種特殊的註釋,也就是通常所說的Javadoc註釋,它是用來記錄程式碼中的API的。Javadoc註釋是一種多行註釋,以/**開頭,而以*/結束,註釋可以包含一些HTML
例如:
/** |
a.在每個程式的最開始部分,一般都用Javadoc註釋進行程式的總體描述以及版權資訊。b.在主程式中可以為每個類、介面、方法、變數新增Javadoc註釋,每個註釋的開頭部分先用一句話概括該類、介面、方法、變數所完成的功能,這句話應單獨佔據一行以突出其概括作用,在這句話後面可以跟隨更加詳細的描述段落。
c.在描述性段落之後還可以跟隨一些以Javadoc註釋標籤開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成的文件中以特定方式顯示。
e.g:
數據類型 |
中文含義 |
作用域 |
你的命名 |
Int |
序列號 |
全域性範圍 |
globalID |
(類) |
使用者賬單 |
(類) |
UserReckoning |
String |
使用者名稱稱 |
類成員 |
userName |
Float |
當月收入 |
類成員 |
currentMonHarvest |
Static final |
最大金額 |
類成員 |
MAX_MONEY |
Double |
罰款 |
區域性變數 |
smartMoney |
(包) |
使用者 |
(包) |
user |
7 集合命名
陣列或者容器推薦命名方式為名詞+s的方式,例如:
List<Person> persons = getPerson();
for(Person person : persons){
dosomeworks;
}
8 泛型命名
a.應該儘量簡明扼要(最好是一個字母),以利於與普通的class或interface區分
Container中的Element應該用E表示;Map裡的key用K表示,value用V;Type用T表示;異常用X表示
b.如果需要接收多個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;
}
8.邏輯變數:避免用flag來命名狀態變數,用is來命名邏輯變數。
if(isClosed){9 部分推薦命名
dosomeworks;
return;
}
a.當要區別介面和實現類的時候,可以在類的後面加上“Impl”。
interface Container class ContainerImpl |
b.Exception類最好能用“Exception”做為類命名的結尾
DataNotFoundException InvalidArgumentException |
c.抽象類最好能用“Abstract”做為類命名的開頭
AbstractBeanDefinition AbstractBeanFactory |
d.Test類最好能用“Test”做為類命名的結尾
ContainerTest |
二 編碼風格
1.提倡應用常量取代數字、固定字串。
2.索引變數:i、j、k等只作為小型迴圈的迴圈索引變數。
3.陣列
a. int[] arr = new int[10]; 一前一後
b.儘量指定大小避免浪費空間
4.除非花括號中為空,不然任何情況下不能省略花括號,並且花括號必須換行
5.類定義順序
1) 常量
2) 成員變數
3) 建構函式
4) 成員函式
5) get和set方法
各個部分之間留出一個空行。
6. 中間打空格
括號的前,後一個字元不需要空格,例如:Person p = new Person(“Jack”, 17);
7.寫無參建構函式
8.儘量拆分成簡單易懂的小方法,當有多個異常時儘量分開寫。
9 不要使用io.*的形式
10 異常捕獲後記得加finally關閉檔案
參考網址: