java命名規(guī)范

使用前注意事項:

1、由于Java面向?qū)ο缶幊痰奶匦? 在命名時應(yīng)盡量選擇名詞

2、駝峰命名法(Camel-Case): 當(dāng)變量名或函式名是由一個或多個單字連結(jié)在一起,而構(gòu)成的唯一識別字時,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。

如:myFirstName

一 包名的書寫規(guī)范 (Package)

推薦使用公司或機構(gòu)的頂級域名為包名的前綴,目的是保證各公司/機構(gòu)內(nèi)所使用的包名的唯一性。包名全部為小寫字母,且具有實際的區(qū)分意義。

1.1 一般要求

1、選擇有意義的名字,能快速地傳達(dá)該類的用途。

2、所有包的命名必須采用小寫英文字母。

1.2 實際應(yīng)用

應(yīng)用系統(tǒng)中經(jīng)常應(yīng)用分層,Dao層(數(shù)據(jù)庫訪問)、Service層(業(yè)務(wù)處理)、Web層(頁面控制action類)。

1、包名的前幾個為固定名稱, 如果是網(wǎng)站的話,采用網(wǎng)站的域名的反寫,如果域名還沒有確定的話,采用公司固定的幾個名稱。如:net.vschool

2、在包名的接下來一個單詞為模塊的名稱。如:用戶模塊,包名為net.vschool.user

3、關(guān)于模塊的訪問操作,采用分層形式,一般分為:

Dao層操作:一般定義在net.vschool.xxx.dao 中,其中xxx為模塊名稱。

Service層操作:一般定義在net.vschool.xxx.servie中。

web層操作:一般定義在 net.vschool.xxx.action中。

如下關(guān)于用戶模塊的例子:

net.vschool.user

net.vschool.user.dao

net.vschool.user.action

net.vschool.user.service

二 類名的書寫規(guī)范 (Class)

類名必須使用名詞,如果一個類名內(nèi)含多個單詞,那么各個單詞第一個字母大寫,后續(xù)字母小寫,起伏呈駝峰狀,人稱駝峰式命名。給類名命名時,必須保證準(zhǔn)確、簡潔且容易理解。盡量使用完整單詞,避免使用縮寫詞(除了大家公認(rèn)的)

2.1 類的命名

2.1.1 一般要求

1、選擇有意義的名字,能快速地傳達(dá)該類的用途。

2、參照java駝峰命名法,類名的首字母必須采用大寫的形式,如果類名為多詞組合而成的話,那么每個詞的首字母必須采用大寫。如:StudentAnswer.java

3、當(dāng)要區(qū)別接口類和實現(xiàn)類的時候,可以在類的后面加上“Impl”。

如:接口類:UserInterface.java 接口實現(xiàn)類:UserInterfaceImp

4、推薦實體類沒有后綴名。

2.1.2 實際應(yīng)用

應(yīng)用系統(tǒng)中經(jīng)常應(yīng)用分層,Dao層(數(shù)據(jù)庫訪問)、Service層(業(yè)務(wù)處理)、Web層(頁面控制action類),每一層的類的名稱盡量帶上該層后綴。

1、Dao層

a、接口類:采用JavaBean+Interface+Dao的形式來定義,即,實體對象+Interface+Dao。

如:用戶對象接口類: UserInterfaceDao,其中xxx為模塊名稱。

b、實現(xiàn)類:采用JavaBean+Interface+Impl+Dao的形式來定義,即,實體對象

+Interface+Impl+Dao。 如:用戶對象實現(xiàn)類:UserInterfaceImplDao

2、Service層

a、接口類:采用Xxx+Interface+Service的形式來定義,即,模塊+Interface+Service。

如:用戶管理接口類:UserMsgInterfaceServiec

b、實現(xiàn)類:采用Xxx+Interface+Impl+Service的形式來定義,即,模塊+Interface+

Impl+Service。如:用戶管理實現(xiàn)類:UserMsgInterfaceImplServiec

3、Web層(action類)

a、實現(xiàn)類:采用縣 Xxx+Operator+Action的形式來定義,即,模塊+操作+Action。如

用戶模塊User+刪除操作Delete+Action = UserDeleteAction

2.1 變量的命名

2.2.1 普通變量

2.2.2.1 一般要求

1、選擇有意義的名字,能快速地傳達(dá)該變量的用途。

2、參照java駝峰命名法,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。

2.2.2.2 實際應(yīng)用

1、變量命名采用基本結(jié)構(gòu)為typeVariableName,使用3字符前綴來表示數(shù)據(jù)類型。

例如,定義一個整形變量:intDocCount,其中int表明數(shù)據(jù)類型,后面為表意的英文名,每個單詞首字母大寫。

2、變量使用技巧:

a、在一段函數(shù)中不使用同一個變量表示前后意義不同的兩個數(shù)值。

b、除非是在循環(huán)中,否則一般不推薦使用單個字母作為變量名,i、j、k等只作為小型循環(huán)的循環(huán)索引變量。

c、避免用Flag來命名狀態(tài)變量。

d、用Is來命名邏輯變量,如:blnFileIsFound。通過這種給布爾變量肯定形式的命名方式,使得其它開發(fā)人員能夠更為清楚的理解布爾變量所代表的意義。

e、如果需要對變量名進(jìn)行縮寫時,一定要注意整個代碼中縮寫規(guī)則的一致性。例如,如果在代碼的某些區(qū)域中使用intCnt,而在另一些區(qū)域中又使用intCount,就會給代碼增加不必要的復(fù)雜性。建議變量名中盡量不要出現(xiàn)縮寫。

2.2.2 靜態(tài)變量

1、選擇有意義的名字,能快速地傳達(dá)該變量的用途。

2、參照java駝峰命名法,采用全部大寫的形式來書寫,對于采用多詞合成的變量采用“_”來連接各單詞。如:USER_LIST

2.3 方法的命名

2.3.1 一般要求

1、選擇有意義的名字,能快速地傳達(dá)該方法的用途。

2、參照java駝峰命名法,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。

2.3.2 實際應(yīng)用

1、方法表示一種行為,它代表一種動作,最好是一個動詞或者動詞詞組或者第一個單詞為一個動詞。

2、屬性方法:以get/set開頭,其后跟字段名稱,字段名稱首字母大寫。如:getUserName()

3、數(shù)據(jù)層方法:只能以insert(插入),delete(刪除),update(更新),select(查找),count(統(tǒng)計)開頭,其他層方法避免以這個5個單詞開頭,以免造成誤解。

4、服務(wù)層方法,根據(jù)方法的行為命名,只描述方法的意義,而不采用方法的目的命名。比如系統(tǒng)的添加新用戶,用戶可以前臺注冊,也可以管理員后臺添加,方法會被重用,所以最好不要用使用register,采用add會更好寫。避免使用與web層相關(guān)的方法。

5、Web層方法最好是貼近web的語言,如register,login,logout等方法。

三 注釋的書寫規(guī)范 (Javadoc)

Java除了可以采用我們常見的注釋方式(//、/* /)之外,Java語言規(guī)范還定義了一種特殊的注釋,也就是我們所說的Javadoc注釋,以/開頭,而以/結(jié)束, Javadoc 注釋可以被自動轉(zhuǎn)為在線文檔,省去了單獨編寫程序文檔的麻煩。 推薦使用。

Javadoc注釋主要涉及范圍:類、屬性、方法。

例如:
代碼如下:

package org.ietf.jgss;
import java.net.InetAddress;
import java.util.Arrays;
 /**
  * 該類的整體性描述。
  *
  * @author 作者
  * @version 1.0, 05/22/07
  * @since 1.0
  */
public class ChannelBinding {
    /**
     * 對該變量的備注信息
     */
    private InetAddress initiator;
    /**
     * 對該變量的備注信息
     */
    private InetAddress acceptor;
    /**
     * 對該變量的備注信息
     */
    private  byte[] appData;
    /**
     * 對該類的構(gòu)造函數(shù)的備注信息。
     *
     * @param initAddr 對參數(shù)的備注。
     * @param acceptAddr對參數(shù)的備注。
     * @param appData對參數(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);
           }
    }
     /**
      * 對該類的具體一函數(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);
      }
}

四 其他書寫規(guī)范

4.1 Jsp頁面名稱的書寫規(guī)范

1.全部采用小寫的英文字符和”_ ”組成。

2.整體采用模塊名+操作的形式。如:user_view.jsp

3.Jsp頁面盡可能與action的意思對應(yīng),如UserListAction 對應(yīng)者user_list.jsp

接口:

使用駝峰式命名。除了用名詞外,還可以用形容詞命名(體現(xiàn)其功能特性)

方法:

規(guī)定用動詞命名,適合用駝峰式命名,但與類名的最大區(qū)別在于,首字母必須小寫

變量:

規(guī)定為名詞,其他同“方法”命名方式一樣。變量名非常關(guān)鍵,應(yīng)含有具體意義且易于理解,一般不允許使用單個字母做變量名。除非一些臨時性變量,像在循環(huán)中使用到的計數(shù)器等。在使用單個字母做變量名時,一般I、J、K用來命名整形變量。

常量:

規(guī)定全用大寫字母表示,如果名字必須用多個單詞來表示,那么各單詞間用“-“分隔。常量要求必須意義明確,能表達(dá)出常量的含義。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、注()里的內(nèi)容是自己的吐槽 二、命名規(guī)約 1.不能以下劃線或美元符開始和結(jié)尾。反例:_name,$name,n...
    戴少閱讀 3,135評論 0 8
  • 常見的命名規(guī)則(見名知意) A:包 全部小寫 單級包:小寫 舉例:liuyi,com 多級包:小寫,并用.隔開 舉...
    一斤有多重閱讀 295評論 2 0
  • 總結(jié)概況: 包名:全部小寫,不適用下劃線 類名:UpperCamelCase(大駱駝風(fēng)格,也不能使用下劃線) 常量...
    Philosopher_閱讀 1,335評論 0 0
  • 八十年代初,唐家村有個名叫唐九的人,在家務(wù)農(nóng)過日子,雖然日子清苦,但一家子還算是過幸福開心??稍谖í氂幸患铝钐凭?..
    三爺故事匯閱讀 435評論 0 1
  • 生活中總有各種無奈 每個人都有自己的無能為力 你看到的永遠(yuǎn)不會是全部 你眼里的茍且可能是別人拼盡了全力 做個善良的...
    Jane漂漂閱讀 1,161評論 19 17

友情鏈接更多精彩內(nèi)容