使用前注意事項(xiàng):
1、由于Java面向?qū)ο缶幊痰奶匦? 在命名時(shí)應(yīng)盡量選擇名詞
2、駝峰命名法(Camel-Case): 當(dāng)變量名或函式名是由一個(gè)或多個(gè)單字連結(jié)在一起,而構(gòu)成的唯一識(shí)別字時(shí),首字母以小寫(xiě)開(kāi)頭,每個(gè)單詞首字母大寫(xiě)(第一個(gè)單詞除外)。
如:myFirstName
一 包名的書(shū)寫(xiě)規(guī)范 (Package)
推薦使用公司或機(jī)構(gòu)的頂級(jí)域名為包名的前綴,目的是保證各公司/機(jī)構(gòu)內(nèi)所使用的包名的唯一性。包名全部為小寫(xiě)字母,且具有實(shí)際的區(qū)分意義。
1.1 一般要求
1、選擇有意義的名字,能快速地傳達(dá)該類(lèi)的用途。
2、所有包的命名必須采用小寫(xiě)英文字母。
1.2 實(shí)際應(yīng)用
應(yīng)用系統(tǒng)中經(jīng)常應(yīng)用分層,Dao層(數(shù)據(jù)庫(kù)訪(fǎng)問(wèn))、Service層(業(yè)務(wù)處理)、Web層(頁(yè)面控制action類(lèi))。
1、包名的前幾個(gè)為固定名稱(chēng), 如果是網(wǎng)站的話(huà),采用網(wǎng)站的域名的反寫(xiě),如果域名還沒(méi)有確定的話(huà),采用公司固定的幾個(gè)名稱(chēng)。如:net.vschool
2、在包名的接下來(lái)一個(gè)單詞為模塊的名稱(chēng)。如:用戶(hù)模塊,包名為net.vschool.user
3、關(guān)于模塊的訪(fǎng)問(wèn)操作,采用分層形式,一般分為:
Dao層操作:一般定義在net.vschool.xxx.dao 中,其中xxx為模塊名稱(chēng)。
Service層操作:一般定義在net.vschool.xxx.servie中。
web層操作:一般定義在 net.vschool.xxx.action中。
如下關(guān)于用戶(hù)模塊的例子:
net.vschool.user
net.vschool.user.dao
net.vschool.user.action
net.vschool.user.service
二 類(lèi)名的書(shū)寫(xiě)規(guī)范 (Class)
類(lèi)名必須使用名詞,如果一個(gè)類(lèi)名內(nèi)含多個(gè)單詞,那么各個(gè)單詞第一個(gè)字母大寫(xiě),后續(xù)字母小寫(xiě),起伏呈駝峰狀,人稱(chēng)駝峰式命名。給類(lèi)名命名時(shí),必須保證準(zhǔn)確、簡(jiǎn)潔且容易理解。盡量使用完整單詞,避免使用縮寫(xiě)詞(除了大家公認(rèn)的)
2.1 類(lèi)的命名
2.1.1 一般要求
1、選擇有意義的名字,能快速地傳達(dá)該類(lèi)的用途。
2、參照java駝峰命名法,類(lèi)名的首字母必須采用大寫(xiě)的形式,如果類(lèi)名為多詞組合而成的話(huà),那么每個(gè)詞的首字母必須采用大寫(xiě)。如:StudentAnswer.java
3、當(dāng)要區(qū)別接口類(lèi)和實(shí)現(xiàn)類(lèi)的時(shí)候,可以在類(lèi)的后面加上“Impl”。
如:接口類(lèi):UserInterface.java 接口實(shí)現(xiàn)類(lèi):UserInterfaceImp
4、推薦實(shí)體類(lèi)沒(méi)有后綴名。
2.1.2 實(shí)際應(yīng)用
應(yīng)用系統(tǒng)中經(jīng)常應(yīng)用分層,Dao層(數(shù)據(jù)庫(kù)訪(fǎng)問(wèn))、Service層(業(yè)務(wù)處理)、Web層(頁(yè)面控制action類(lèi)),每一層的類(lèi)的名稱(chēng)盡量帶上該層后綴。
1、Dao層
a、接口類(lèi):采用JavaBean+Interface+Dao的形式來(lái)定義,即,實(shí)體對(duì)象+Interface+Dao。
如:用戶(hù)對(duì)象接口類(lèi): UserInterfaceDao,其中xxx為模塊名稱(chēng)。
b、實(shí)現(xiàn)類(lèi):采用JavaBean+Interface+Impl+Dao的形式來(lái)定義,即,實(shí)體對(duì)象
+Interface+Impl+Dao。 如:用戶(hù)對(duì)象實(shí)現(xiàn)類(lèi):UserInterfaceImplDao
2、Service層
a、接口類(lèi):采用Xxx+Interface+Service的形式來(lái)定義,即,模塊+Interface+Service。
如:用戶(hù)管理接口類(lèi):UserMsgInterfaceServiec
b、實(shí)現(xiàn)類(lèi):采用Xxx+Interface+Impl+Service的形式來(lái)定義,即,模塊+Interface+
Impl+Service。如:用戶(hù)管理實(shí)現(xiàn)類(lèi):UserMsgInterfaceImplServiec
3、Web層(action類(lèi))
a、實(shí)現(xiàn)類(lèi):采用縣 Xxx+Operator+Action的形式來(lái)定義,即,模塊+操作+Action。如
用戶(hù)模塊User+刪除操作Delete+Action = UserDeleteAction
2.1 變量的命名
2.2.1 普通變量
2.2.2.1 一般要求
1、選擇有意義的名字,能快速地傳達(dá)該變量的用途。
2、參照java駝峰命名法,首字母以小寫(xiě)開(kāi)頭,每個(gè)單詞首字母大寫(xiě)(第一個(gè)單詞除外)。
2.2.2.2 實(shí)際應(yīng)用
1、變量命名采用基本結(jié)構(gòu)為typeVariableName,使用3字符前綴來(lái)表示數(shù)據(jù)類(lèi)型。
例如,定義一個(gè)整形變量:intDocCount,其中int表明數(shù)據(jù)類(lèi)型,后面為表意的英文名,每個(gè)單詞首字母大寫(xiě)。
數(shù)據(jù)類(lèi)型或?qū)ο箢?lèi)型 | 變量前綴 | 備注 |
byte | bye | 1、做數(shù)組用時(shí),再加前綴-a,如字符串?dāng)?shù)組:astr, 2、自定義類(lèi)型的變量可以采用本身的名稱(chēng),把首字母改為小寫(xiě)。 3、采用名稱(chēng)要能代表在方法中的意義。如果員工列表:employeeList |
char | chr | |
float | flt | |
boolean | bln | |
Integer/int | int | |
short | sht | |
Long/long | lng | |
Double/double | dbl | |
string | str |
2、變量使用技巧:
a、在一段函數(shù)中不使用同一個(gè)變量表示前后意義不同的兩個(gè)數(shù)值。
b、除非是在循環(huán)中,否則一般不推薦使用單個(gè)字母作為變量名,i、j、k等只作為小型循環(huán)的循環(huán)索引變量。
c、避免用Flag來(lái)命名狀態(tài)變量。
d、用Is來(lái)命名邏輯變量,如:blnFileIsFound。通過(guò)這種給布爾變量肯定形式的命名方式,使得其它開(kāi)發(fā)人員能夠更為清楚的理解布爾變量所代表的意義。
e、如果需要對(duì)變量名進(jìn)行縮寫(xiě)時(shí),一定要注意整個(gè)代碼中縮寫(xiě)規(guī)則的一致性。例如,如果在代碼的某些區(qū)域中使用intCnt,而在另一些區(qū)域中又使用intCount,就會(huì)給代碼增加不必要的復(fù)雜性。建議變量名中盡量不要出現(xiàn)縮寫(xiě)。
2.2.2 靜態(tài)變量
1、選擇有意義的名字,能快速地傳達(dá)該變量的用途。
2、參照java駝峰命名法,采用全部大寫(xiě)的形式來(lái)書(shū)寫(xiě),對(duì)于采用多詞合成的變量采用“_”來(lái)連接各單詞。如:USER_LIST
2.3 方法的命名
2.3.1 一般要求
1、選擇有意義的名字,能快速地傳達(dá)該方法的用途。
2、參照java駝峰命名法,首字母以小寫(xiě)開(kāi)頭,每個(gè)單詞首字母大寫(xiě)(第一個(gè)單詞除外)。
2.3.2 實(shí)際應(yīng)用
1、方法表示一種行為,它代表一種動(dòng)作,最好是一個(gè)動(dòng)詞或者動(dòng)詞詞組或者第一個(gè)單詞為一個(gè)動(dòng)詞。
2、屬性方法:以get/set開(kāi)頭,其后跟字段名稱(chēng),字段名稱(chēng)首字母大寫(xiě)。如:getUserName()
3、數(shù)據(jù)層方法:只能以insert(插入),delete(刪除),update(更新),select(查找),count(統(tǒng)計(jì))開(kāi)頭,其他層方法避免以這個(gè)5個(gè)單詞開(kāi)頭,以免造成誤解。
4、服務(wù)層方法,根據(jù)方法的行為命名,只描述方法的意義,而不采用方法的目的命名。比如系統(tǒng)的添加新用戶(hù),用戶(hù)可以前臺(tái)注冊(cè),也可以管理員后臺(tái)添加,方法會(huì)被重用,所以最好不要用使用register,采用add會(huì)更好寫(xiě)。避免使用與web層相關(guān)的方法。
5、Web層方法最好是貼近web的語(yǔ)言,如register,login,logout等方法。
三 注釋的書(shū)寫(xiě)規(guī)范 (Javadoc)
Java除了可以采用我們常見(jiàn)的注釋方式(//、/* */)之外,Java語(yǔ)言規(guī)范還定義了一種特殊的注釋?zhuān)簿褪俏覀兯f(shuō)的Javadoc注釋?zhuān)?**開(kāi)頭,而以*/結(jié)束, Javadoc 注釋可以被自動(dòng)轉(zhuǎn)為在線(xiàn)文檔,省去了單獨(dú)編寫(xiě)程序文檔的麻煩。 推薦使用。
Javadoc注釋主要涉及范圍:類(lèi)、屬性、方法。
例如:
import java.net.InetAddress;
import java.util.Arrays;
/**
* 該類(lèi)的整體性描述。
*
* @author 作者
* @version 1.0, 05/22/07
* @since 1.0
*/
public class ChannelBinding {
/**
* 對(duì)該變量的備注信息
*/
private InetAddress initiator;
/**
* 對(duì)該變量的備注信息
*/
private InetAddress acceptor;
/**
* 對(duì)該變量的備注信息
*/
private byte[] appData;
/**
* 對(duì)該類(lèi)的構(gòu)造函數(shù)的備注信息。
*
* @param initAddr 對(duì)參數(shù)的備注。
* @param acceptAddr對(duì)參數(shù)的備注。
* @param appData對(duì)參數(shù)的備注。
*/
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr,
byte[] appData) {
initiator = initAddr;
acceptor = acceptAddr;
if (appData != null) {
this.appData = new byte[appData.length];
java.lang.System.arraycopy(appData, 0, this.appData, 0,
appData.length);
}
}
/**
* 對(duì)該類(lèi)的具體一函數(shù)的備注信息
*
* @param obj 參數(shù)的備注信息
* @return 返回值的備注信息
*/
public boolean equals(Object obj) {
if (this == obj)
return true;
if (! (obj instanceof ChannelBinding))
return false;
ChannelBinding cb = (ChannelBinding) obj;
return Arrays.equals(appData, cb.appData);
}
}
4.1 Jsp頁(yè)面名稱(chēng)的書(shū)寫(xiě)規(guī)范
1.全部采用小寫(xiě)的英文字符和”_ ”組成。
2.整體采用模塊名+操作的形式。如:user_view.jsp
3.Jsp頁(yè)面盡可能與action的意思對(duì)應(yīng),如UserListAction 對(duì)應(yīng)者user_list.jsp
接口:
使用駝峰式命名。除了用名詞外,還可以用形容詞命名(體現(xiàn)其功能特性)
方法:
規(guī)定用動(dòng)詞命名,適合用駝峰式命名,但與類(lèi)名的最大區(qū)別在于,首字母必須小寫(xiě)
變量:
規(guī)定為名詞,其他同“方法”命名方式一樣。變量名非常關(guān)鍵,應(yīng)含有具體意義且易于理解,一般不允許使用單個(gè)字母做變量名。除非一些臨時(shí)性變量,像在循環(huán)中使用到的計(jì)數(shù)器等。在使用單個(gè)字母做變量名時(shí),一般I、J、K用來(lái)命名整形變量。
常量:
規(guī)定全用大寫(xiě)字母表示,如果名字必須用多個(gè)單詞來(lái)表示,那么各單詞間用“-“分隔。常量要求必須意義明確,能表達(dá)出常量的含義。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注