一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JAVA語言編程格式高級規范

JAVA語言編程格式高級規范

2019-12-17 13:20mdxy-dxy JAVA教程

這篇文章主要介紹了JAVA語言編程格式高級規范,需要的朋友可以參考下

作為一位開發人員,都要有嚴格的代碼規范。為此我總結了一些代碼規范案例。

目 錄

1. 前言

2. 試用范圍

3. JAVA命名規范--

3.1 公共約定

3.2 Java文件、包

3.3 類、接口命名規范

3.4 方法命名規范

3.5 常量

3.6 變量和參數

3.7 組件/部件

3.8 集合

3.9 神秘的數

3.10 其他

3.11 Java異常

3.12 數組命名

3.13 數據庫表命名規則

3.14 數據庫字段命名規則

3.15 JSP文件命名

3.16 Servlet類命名

4. 書寫格式規范

4.1 縮進

4.2 空格

4.3 對齊

4.4 空行

4.5 注釋

5. 代碼文件風格

 

1. 前言 為確保系統源程序可讀性,從而增強系統可維護性,茲制定下述編程規范,以規范系統各部分編程。系統繼承的其它資源中的源程序也應按此規范作相應修改。
2. 試用范圍 本文檔將作為河北郵政應用系統軟件(JAVA語言)開發的編程格式規范。在系統的編碼、測試及維護過程中,要求嚴格遵守。
3. JAVA命名規范
3.1 公共約定 ? 命名指系統中對源文件名、方法、目錄、包、數據庫表名、數據庫字段等的命名。 ?
系統所用的命名都使用英文縮寫來表達。 ?
命名的組成方式為:前綴+{命名詞素縮寫},前綴表達出命名的用途,如數據庫表等。 ?
命名的前綴由項目組確定。 ?
除系統公共維護對象外的其他對象,命名全部用小寫。一種方式用“_”作連接符,另一種方式是詞素的第一個字母大寫直接連接在一起。在本規范中,數據庫名、數據庫字段名采用第一種方式,其余采用第二種方式。 ?
使用可以準確說明變量/字段/類/接口/包等的完整的英文描述符。例如,采用類似 firstName,listAllUsers 或 CorporateCustomer 這樣的名字,嚴禁使用漢語拼音及不相關單詞命名,雖然Java支持Unicode命名,但本規范規定對包、類、接口、方法、變量、字段等不得使用漢字等進行命名 ?
采用大小寫混合,提高名字的可讀性。一般應該采用小寫字母,但是類和接口的名字的首字母,以及任何中間單詞的首字母應該大寫。包名全部小寫。 ?
盡量少用縮寫,但如果一定要使用,當使用公共縮寫和習慣縮寫等,如實現(implement)可縮寫成impl,經理(manager)可縮寫成mgr等,具體參看下表,嚴禁濫用縮寫。 ? 避免使用長名字(最好不超過 25 個字母)。

避免使用數字,但可用2代替to,用4代替for等,如:go2Jsp。

3.2 Java文件、包 ?
文件名當與其類嚴格相同,所有單詞首字母大寫。 ?
包名一般以項目或模塊名命名,少用縮寫和長名,一律小寫。 ?
基本包:com.czpost,所有包、文件都從屬于此包。
包名按如下規則組成: [基本包].[項目名].[模塊名].[子模塊名]... 如: com.czpost.eims com.hepost.eims.until„ ?
不得將類直接定義在基本包下,所有項目中的類、接口等都當定義在各自的項目和模塊 包中。

3.3 類、接口命名規范 ? 所有單詞首字母大寫。使用能確切反應該類、接口含義、功能等的詞。一般采用名詞。 ?
接口可帶I前綴或able、ible、er等后綴。

3.4 方法命名規范 方法的命名應采用完整的英文描述符,大小寫混合使用:所有中間單詞的第一個字母大寫。法名稱的第一個單詞常常采用一個有強烈動作色彩的動詞。 取值類使用get前綴,設值類使用set前綴,判斷類使用is(has)前綴。 例: getName() setSarry() isLogon() 方法參數建議順序:(被操作者,操作內容,操作標志,其他?) 例:public void replace(String sourceStr, String oldStr, String newStr) { ........ }

3.5 常量 采用完整的英文大寫單詞,在詞與詞之間用下劃線連接,如:DEFAULT_VALUE

3.6 變量和參數 變量建議采用匈牙利命名法,詞素規則見“公共約定” ?
整型變量(包括int,short,long):以 n 開頭,例如:long nCredNum; ?
浮點型變量(包括float,double):以 f 開頭,例如:double fTranAmt; ?
字符變量:以 c 開頭,例如:char cPageFlag; ?
日期型變量:以d開頭,例如:date dToday; ? 布爾型變量:以is開頭,例如:boolean isFlag; ?
字符串變量:以 s 開頭,例如:char sPageNo[2+1]; ?
全局變量:以g開頭結合數據的類型,例如:char gsBankNo[10+1]; ?
靜態變量:靜態變量在文件中同樣是全局變量,命名規則同全局變量。 ?
系統級變量:系統級變量同樣是全局變量,以 ‘_'開頭結合數據的類型。
例如:char _sBankNo[10+1] 沒有‘g'。
臨時變量通常被取名為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字符型。

3.7 組件/部件 應采用完整的英文描述符命名組件(接口部件),遵循匈牙利命名法則 如:btnOK,lblName。 ? 按鈕變量 btn+Xxxxxxx 例如:btnSave, btn Exit, btnPrint等 ? 題標變量 lbl+Xxxxxxxx 例如:lblName, lblSex等 對象類型 前綴 Canvas cvs CheckBox chk Image img List lst Choice chc Dialog dlg Event evt Frame frm Menu menu Panel pnl TextArea txa TextField txf

3.8 集合 一個集合,例如數組和矢量,應采用復數命名來表示隊列中存放的對象類型。命名應采用完整的英文描述符,名字中所有非開頭的單詞的第一個字母應大寫,適當使用集合縮寫前綴。如: Vector vProducts = new Vector(); //產品向量 Array aryUsers = new Array(); //用戶列表

3.9 神秘的數 程序里經常會用到一些量,它是有特定的含義的,把神秘的數定義為一個常量。注意這個常量的命名應該能表達該數的意義,并且應該全部大寫,以與對應于變量的標識符區別開來。例如50這個數,可以定義為一個名為NUM_OF_EMPLOYEES的常量來代替。

3.10 其他 命名時應使用復數來表示它們代表多值。如:orderItems。

3.11 Java異常 異常類名由表示該異常類型的單詞和Exception組成,如ActionException。
異常實例一般使用e、ex等,在多個異常時使用該異常名或簡寫加E,Ex等組成,如: SQLEx ActionEx

3.12 數組命名 數組應該總是用下面的方式來命名: byte[] buffer; 而不是 byte buffer[];

3.13 數據庫表命名規則 ? 前綴與命名詞素間用下劃線分隔。 ? 命名由小寫字母組成。 ?
命名詞素如果由單一詞組成,可用全拼;如果是多詞組成,用縮寫。縮寫間用下劃線。 例如: ? 庫表:以‘t_'開頭 ? 視圖:以‘v_'開頭 ? 庫表索引:以‘t_'開頭, 以‘_idx'結尾 ? 庫表唯一索引:以‘t_'開頭,以‘_uidx'結尾

3.14 數據庫字段命名規則 ?
命名詞素如果由單一詞組成,可用全拼;如果是多詞組成,用縮寫。縮寫間用下劃線。 ? 命名由小寫字母組成。 ? 沒有前綴。

3.15 JSP文件命名 采用完整的英文描述說明JSP所完成的功能,盡可能包括一個生動的動詞,第一個字母小寫,如:viewMessage.jsp、editUser.jsp或者forumChooser.jsp等。

3.16 Servlet類命名 一般對應于所服務的對象加后綴Service來命名,如:UserService,TradeService等。

4. 書寫格式規范 嚴格要求書寫格式是為了使程序整齊美觀、易于閱讀、風格統一,程序員對規范書寫的必要性要有明確認識。建議源程序使用eclipse工具開發,格式規范預先在工具中設置。

4.1 縮進 縮進建議以4個空格為單位。預處理語句、全局數據、標題、附加說明、函數說明、標號等均頂格書寫。語句塊的"{"、"}"配對對齊,并與其前一行對齊,語句塊類的語句縮進建議每個"{"、"}"單獨占一行,便于匹對。sclipse 中的默認方式是開始的"{"不是單獨一行,建議更改成上述格式。

4.2 空格 原則上變量、類、常量數據和函數在其類型,修飾名稱之間適當空格并據情況對齊。關鍵字原則上空一格,如:if ( ... ) 等。運算符的空格規定如下:"::"、"->"、"["、"]"、"++"、"--"、"~"、"!"、"+"、"-"(指正負號)、"&"(引用)等幾個運算符兩邊不加空格(其中單目運算符系指與操作數相連的一邊),其它運算符(包括大多數二目運算符和三目運算符"?:"兩邊均加一空格,在作函數定義時還可據情況多空或不空格來對齊,但在函數實現時可以不用。","運算符只在其后空一格,需對齊時也可不空或多空格。不論是否有括號,對語句行后加的注釋應用適當空格與語句隔開并盡可能對齊。個人認為此項可以依照個人習慣決定遵循與否。

4.3 對齊 原則上關系密切的行應對齊,對齊包括類型、修飾、名稱、參數等各部分對齊。另每一行的長度不應超過屏幕太多,必要時適當換行,換行時盡可能在","處或運算符處,換行后最好以運算符打頭,并且以下各行均以該語句首行縮進,但該語句仍以首行的縮進為準,即如其下一行為“{”應與首行對齊。 變量定義最好通過添加空格或TAB鍵形成對齊,同一類型的變量最好放在一起。如下例所示: int nValue; int nResult; int nLength;

4.4 空行 不得存在無規則的空行,比如說連續十個空行。程序文件結構各部分之間空一行,由于每個函數還要有函數說明注釋,故通常只需空一行或不空,但對于沒有函數說明的情況至少應再空一行。對自己寫的函數,建議也加上“//------”做分隔。函數內部數據與代碼之間應空至少一行,代碼中適當處應以空行空開,建議在代碼中出現變量聲明時,在其前空一行。類中四個“p”之間至少空一行,在其中的數據與函數之間也應空行。

4.5 注釋 注釋是軟件可讀性的具體體現。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。程序注釋不能用抽象的語言,類似于"處理"、"循環"這樣的計算機抽象語言,要精確表達出程序的處理說明。避免每行程序都使用注釋,可以在一段程序的前面加一段注釋,具有明確的處理邏輯。 注釋必不可少,但也不應過多,不要被動的為寫注釋而寫注釋。以下是四種必要的注釋: ? 標題、附加說明。 ? 函數、類等的說明。對幾乎每個函數都應有適當的說明,通常加在函數實現之前,在沒 有函數實現部分的情況下則加在函數原型前,其內容主要是函數的功能、目的、算法等說明,參數說明、返回值說明等,必要時還要有一些如特別的軟硬件要求等說明。公用函數、公用類的聲明必須由注解說明其使用方法和設計思路,當然選擇恰當的命名格式能夠幫助你把事情解釋得更清楚。 ?
在代碼不明晰或不可移植處必須有一定的說明。 ?
及少量的其它注釋,如自定義變量的注釋、代碼書寫時間等。

5. 代碼文件風格 所有的 Java(*.java) 文件都必須遵守如下的樣式規則: ?
文件生成 對于規范的 JAVA 派生類,盡量用 eclipse工具來生成文件格式,避免用手工制作的頭文件/實現文件。 ? package/import package 行要在 import 行之前,import 中標準的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個包中的不同子目錄,則應該用 * 來處理。
package hotlava.net.stats; import java.io.*; import java.util.Observable; import hotlava.util.Application; 這里 java.io.* 使用來代替InputStream and OutputStream 的。 ?
文件頭部注釋 文件頭部注釋主要是表明該文件的一些信息,是程序的總體說明,可以增強程序的可讀性和可維護性。文件頭部注釋一般位于 package/imports 語句之后,Class 描述之前。要求至少寫出文件名、創建者、創建時間和內容描述。其格式應該盡量約束如下: /** *Title: 確定鼠標位置類 * Description: 確定鼠標當前在哪個作業欄位中并返回作業號 * @Copyright: Copyright (c) 2002 * @Company: HIT * @author: rivershan * @version: 1.0 */ ? Class 接下來的是類的注釋,一般是用來解釋類的。 /** *A class representing a set of packet and byte counters * It is observable to allow it to be watched, but only * reports changes when the current set is complete */ 接下來是類定義,包含了在不同的行的 extends 和 implements public class CounterSet extends Observable implements Cloneable ? Class Fields

 

 

接下來是類的成員變量: /** *Packet counters */ protected int[] packets; public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。 ? 存取方法 接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。(個人認為盡量分行寫)

/** *Get the counters * @return an array containing the statistical data. This array has been * freshly allocated and can be modified by the caller. */

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public int[] getPackets() {
 
return copyArray(packets, offset);
 
} public int[] getBytes() {
 
 return copyArray(bytes, offset);
 
}
 
public int[] getPackets() {
 
 return packets;
 
} public void setPackets(int[] packets) {
 
this.packets = packets;
 
}

其它的方法不要寫在一行上 ? 構造函數 接下來是構造函數,它應該用遞增的方式寫(比如:參數多的寫在后面)。 訪問類型("public","private" 等.)和任何"static","final"或"synchronized"應該在一行中,并且方法和參數另寫一行,這樣可以使方法和參數更易讀。

public CounterSet(int size) {

this.size = size;

} ?

克隆方法 如果這個類是可以被克隆的,那么下一步就是 clone 方法: public Object clone() {

try {

CounterSet obj = (CounterSet)super.clone(); obj.packets = (int[])packets.clone(); obj.size = size; return obj;

} catch(CloneNotSupportedException e) {

throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage());

}

} ?

類方法 下面開始寫類的方法:

/** *Set the packet counters * (such as when restoring from a database) */ protected final void setArray(int[] r1, int[] r2, int[] r3, int[] r4) throws IllegalArgumentException {

// // Ensure the arrays are of equal size // if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length) throw new IllegalArgumentException("Arrays must be of the same size"; System.arraycopy(r1, 0, r3, 0, r1.length); System.arraycopy(r2, 0, r4, 0, r1.length); } ? toString 方法 無論如何,每一個類都應該定義 toString 方法:

 

?
1
2
3
4
5
6
7
8
public String toString() {
String retval = "CounterSet: ";
 for (int i = 0; i < data.length(); i++)  { 
 retval += data.bytes.toString();
retval += data.packets.toString();
}
return retval;
 }

main 方法 如果main(String[]) 方法已經定義了, 那么它應該寫在類的底部。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99精品在线视频 | 美女主播免费观看 | 色综色| 99热久久这里只精品国产www | 男人猛激烈吃奶gif动态图 | free性丰满hd性欧美人体 | 夫妻性生活在线 | a4yy欧美一区二区三区 | 99re8在线精品视频免费播放 | 婷婷去我也去 | 国产精品国色综合久久 | 蘑菇香蕉茄子绿巨人丝瓜草莓 | 成品人视频免费观看 | 毛片免费观看的视频 | 国产精品夜色视频一级区 | 日韩视频在线免费 | 美女国内精品自产拍在线播放 | 日韩久久影院 | 草莓在深夜释放自己软件 | 火影忍者小南裸羞羞漫画 | 日本成日本片人免费 | jizzjizz大学生| 男人插曲女人身体 | 99精品视频一区在线观看miya | 毛片大全高清免费 | 很黄的孕妇a级黄毛片 | 桃乃木香奈ipx在线播放 | 亚洲精品视频导航 | 免费亚洲成人 | 国产精品精品 | 久久亚洲免费视频 | 国产二区三区 | 国产一区二区三区毛片 | 好大夫在线个人空间 | 亚洲大逼| 国产夜趣福利第一视频 | 日韩亚洲欧美一区二区三区 | 欧美成人乱弄视频 | 99夜色| 亚洲大片免费看 | 欧美18一videos极品 |