国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

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

JAVA語言編程格式高級規(guī)范

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

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

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

目 錄

1. 前言

2. 試用范圍

3. JAVA命名規(guī)范--

3.1 公共約定

3.2 Java文件、包

3.3 類、接口命名規(guī)范

3.4 方法命名規(guī)范

3.5 常量

3.6 變量和參數(shù)

3.7 組件/部件

3.8 集合

3.9 神秘的數(shù)

3.10 其他

3.11 Java異常

3.12 數(shù)組命名

3.13 數(shù)據(jù)庫表命名規(guī)則

3.14 數(shù)據(jù)庫字段命名規(guī)則

3.15 JSP文件命名

3.16 Servlet類命名

4. 書寫格式規(guī)范

4.1 縮進

4.2 空格

4.3 對齊

4.4 空行

4.5 注釋

5. 代碼文件風格

 

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

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

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

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

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

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

3.6 變量和參數(shù) 變量建議采用匈牙利命名法,詞素規(guī)則見“公共約定” ?
整型變量(包括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開頭結合數(shù)據(jù)的類型,例如:char gsBankNo[10+1]; ?
靜態(tài)變量:靜態(tài)變量在文件中同樣是全局變量,命名規(guī)則同全局變量。 ?
系統(tǒng)級變量:系統(tǒng)級變量同樣是全局變量,以 ‘_'開頭結合數(shù)據(jù)的類型。
例如: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 集合 一個集合,例如數(shù)組和矢量,應采用復數(shù)命名來表示隊列中存放的對象類型。命名應采用完整的英文描述符,名字中所有非開頭的單詞的第一個字母應大寫,適當使用集合縮寫前綴。如: Vector vProducts = new Vector(); //產(chǎn)品向量 Array aryUsers = new Array(); //用戶列表

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

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

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

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

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

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

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

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

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

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

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

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

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

4.5 注釋 注釋是軟件可讀性的具體體現(xiàn)。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。程序注釋不能用抽象的語言,類似于"處理"、"循環(huán)"這樣的計算機抽象語言,要精確表達出程序的處理說明。避免每行程序都使用注釋,可以在一段程序的前面加一段注釋,具有明確的處理邏輯。 注釋必不可少,但也不應過多,不要被動的為寫注釋而寫注釋。以下是四種必要的注釋: ? 標題、附加說明。 ? 函數(shù)、類等的說明。對幾乎每個函數(shù)都應有適當?shù)恼f明,通常加在函數(shù)實現(xiàn)之前,在沒 有函數(shù)實現(xiàn)部分的情況下則加在函數(shù)原型前,其內容主要是函數(shù)的功能、目的、算法等說明,參數(shù)說明、返回值說明等,必要時還要有一些如特別的軟硬件要求等說明。公用函數(shù)、公用類的聲明必須由注解說明其使用方法和設計思路,當然選擇恰當?shù)拿袷侥軌驇椭惆咽虑榻忉尩酶宄??
在代碼不明晰或不可移植處必須有一定的說明。 ?
及少量的其它注釋,如自定義變量的注釋、代碼書寫時間等。

5. 代碼文件風格 所有的 Java(*.java) 文件都必須遵守如下的樣式規(guī)則: ?
文件生成 對于規(guī)范的 JAVA 派生類,盡量用 eclipse工具來生成文件格式,避免用手工制作的頭文件/實現(xiàn)文件。 ? 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 描述之前。要求至少寫出文件名、創(chuàng)建者、創(chuàng)建時間和內容描述。其格式應該盡量約束如下: /** *Title: 確定鼠標位置類 * Description: 確定鼠標當前在哪個作業(yè)欄位中并返回作業(yè)號 * @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;
 
}

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

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[]) 方法已經(jīng)定義了, 那么它應該寫在類的底部。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 综合精品久久久 | 国产99久久精品 | 久久久亚洲综合 | 亚洲第十页 | 欧美成人综合视频 | 日韩欧美精品在线 | 欧美中文字幕一区 | 一区二区在线 | 亚洲视频在线看 | 日韩在线 | 亚洲成年人网站在线观看 | 精品日韩一区二区 | 久久人人爽人人爽人人片av不 | 亚洲福利一区二区 | 一区二区欧美视频 | 亚洲天堂久久 | 欧美日韩国产中文 | 久久白虎 | 国产精品永久久久久久久久久 | 欧美激情在线播放 | 狠狠干美女 | 精品一区国产 | 国产黄 | 国产成年人电影在线观看 | 欧美日韩高清在线一区 | 一区二区在线视频 | 黄p在线看 | 欧美日韩一区二区在线 | 91精品国产高清一区二区三区 | 精品三级 | 国产精品成人免费视频 | 久草热8精品视频在线观看 久久亚洲精品中文字幕 | 亚洲精品视频大全 | 亚洲情在线 | 中文字幕 国产 | 在线免费观看av电影 | 精品无码久久久久国产 | 看亚洲a级一级毛片 | 四虎久久精品 | 一区二区三区四区精品 | 国产第一夜 |