1. 程式人生 > >Java命名規範和程式設計風格

Java命名規範和程式設計風格

一 命名規範

1.包的命名

小寫單片語成

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 引數的命名規範和方法的命名規範相同,引數的命名儘可能明確。

6Javadoc註釋

Java除了可以採用常見的註釋方式之外,Java語言規範還定義了一種特殊的註釋,也就是通常所說的Javadoc註釋,它是用來記錄程式碼中的API的。Javadoc註釋是一種多行註釋,以/**開頭,而以*/結束,註釋可以包含一些HTML

標記符和專門的關鍵詞。使用Javadoc註釋的好處是編寫的註釋可以被自動轉化為線上文件,省去了單獨編寫程式文件的麻煩。

例如:

/**
*This is an example of
* Javadoc
*
 darchon
 0.1, 10/11/2002
*/

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){
dosomeworks;
return;
}

9 部分推薦命名

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關閉檔案

參考網址: