JAVA命名規範

一 、包名的書寫規範 (Package)

推薦使用公司或機構的頂級域名爲包名的前綴,目的是保證各公司/機構內所使用的包名的唯一性。包名全部爲小寫字母,且具有實際的區分意義。

1.1 一般要求

     1、選擇有意義的名字,能快速地傳達該類的用途。
     2、所有包的命名必須採用小寫英文字母。

1.2 實際應用

應用系統中經常應用分層,Dao層(數據庫訪問)、Service層(業務處理)、Web層(頁面控制action類)。

     1、包名的前幾個爲固定名稱, 如果是網站的話,採用網站的域名的反寫,如果域名還沒有確定的話,
     採用公司固定的幾個名稱。如:net.vschool

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

     3、關於模塊的訪問操作,採用分層形式,一般分爲:

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

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

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

如下關於用戶模塊的例子:

           net.vschool.user

           net.vschool.user.dao

           net.vschool.user.action

           net.vschool.user.service

二 、類名的書寫規範 (Class)

類名必須使用名詞,如果一個類名內含多個單詞,那麼各個單詞第一個字母大寫,後續字母小寫,起伏呈駝峯狀,人稱駝峯式命名。給類名命名時,必須保證準確、簡潔且容易理解。儘量使用完整單詞,避免使用縮寫詞 除了大家公認的

2.1 類的命名

2.1.1 一般要求

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

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

   3、當要區別接口類和實現類的時候,可以在類的後面加上“Impl”。

   如:接口類:UserInterface.java   接口實現類:UserInterfaceImp

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

2.1.2 實際應用

應用系統中經常應用分層,Dao層(數據庫訪問)、Service層(業務處理)、Web層(頁面控制action類),每一層 的類的名稱儘量帶上該層後綴。

  1、Dao層

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

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

       b、實現類:採用JavaBean+Interface+Impl+Dao的形式來定義,即,實體對象 +Interface+Impl+Dao。 

            如:用戶對象實現類:UserInterfaceImplDao

   2、Service層

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

            如:用戶管理接口類:UserMsgInterfaceServiec

       b、實現類:採用Xxx+Interface+Impl+Service的形式來定義,即,模塊+Interface+

            Impl+Service。如:用戶管理實現類:UserMsgInterfaceImplServiec

  3、Web層(action類)

            a、實現類:採用縣 Xxx+Operator+Action的形式來定義,即,模塊+操作+Action。

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

2.2 變量的命名

2.2.1 普通變量

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

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

2.2.2實際應用

        1、變量命名採用基本結構爲typeVariableName,使用3字符前綴來表示數據類型。

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

 |數據類型或對象類型  |  變量前綴 |    備註|
 ---|----
 byte           bye           1、做數組用時,再加前綴-a,如字符串數組:astr;
 short          sht           2、自定義類型的變量可以採用本身的名稱,把首字母改爲小寫;               
 Integer/int    int           3、採用名稱要能代表在方法中的意義。如果員工列表:employeeList   
 Long/long      lng
 float          flt
 Double/double  dbl
 char           chr 
 boolean        bln
 String         str

     2、變量使用技巧:

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

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

             c、避免用Flag來命名狀態變量。

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

             e、如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性。例如,如果在代
             複雜性。建議變量名中儘量不要出現縮寫。  

2.2.3 靜態變量

       1、選擇有意義的名字,能快速地傳達該變量的用途。
       2、參照java駝峯命名法,採用全部大寫的形式來書寫,對於採用多詞合成的變量採用“_”來連接各單詞。如:USER_LIST

2.3 方法的命名

2.3.1 一般要求

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

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

2.3.2 實際應用

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

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

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

     4、服務層方法,根據方法的行爲命名,只描述方法的意義,而不採用方法的目的命名。比如系統的添加新用戶,用戶可以前臺註冊,也可以管理員後臺添加,方法              會被重用,所以最好不要用使用register,採用add會更好寫。避免使用與web層相關的方法。

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

三 註釋的書寫規範 (Javadoc)

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

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;

/**
* 對該類的構造函數的備註信息。
* @param initAddr 對參數的備註。
* @param acceptAddr對參數的備註。
* @param appData對參數的備註。
*
*/
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);

}

}
/**
* 對該類的具體一函數的備註信息
* @param obj 參數的備註信息
* @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頁面名稱的書寫規範

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

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

3.Jsp頁面儘可能與action的意思對應,如UserListAction 對應者user_list.jsp

接口:

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

方法:

 規定用動詞命名,適合用駝峯式命名,但與類名的最大區別在於,首字母必須小寫

變量:

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

常量:

   規定全用大寫字母表示,如果名字必須用多個單詞來表示,那麼各單詞間用“-“分隔。常量要求必須意義明確,能表達出常量的含義。
發佈了39 篇原創文章 · 獲贊 34 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章