




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、為了提高整個開發(fā)中心產(chǎn)品和項目的測試效率,保證產(chǎn)品與項目內(nèi)部系統(tǒng)集成測試的順利進行,現(xiàn)要求系統(tǒng)開發(fā)部各項目組在提交產(chǎn)品至項目監(jiān)理部之前必須進行嚴格的單元測試,即按照代碼的單元組成逐個進行測試。具體說明如下: ¨ 單元測試內(nèi)容 單元測試的依據(jù)是詳細設(shè)計,應(yīng)對模塊內(nèi)所有重要的控制路徑設(shè)計測試用例,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤。單元測試的測試類型主要包括: 1 模塊接口測試; 2 模塊局部數(shù)據(jù)結(jié)構(gòu)測試; 3 模塊邊界條件測試; 4 模塊中所有獨立執(zhí)行通路測試; 5 模
2、塊的各條錯誤處理通路測試; 6 模塊的非法測試,例如在輸入數(shù)字的地方輸入字母; 7代碼重用測試,在開發(fā)過程中有些模塊功能幾乎相同,程序員在重用代碼時可能忘記在原有代碼上修改或修改不全面,而造成的錯誤; 8系統(tǒng)兼容測試,例如有些程序在IE6能運行正常,到IE5下不能運行。有些程序在WIN2000下能運行,而到WIN98卻不能運行。 ¨ 單元測試力度 要求測試力度滿足: 語句覆蓋:使被測程序的每條語句至少執(zhí)行一次; 判定覆蓋:使被測程序的每一分支執(zhí)行一次; 條件覆蓋:要求判定中的每個條件均
3、為“真”、“假”兩種結(jié)果至少執(zhí)行一次; 條件組合覆蓋:讓條件覆蓋中的結(jié)果的所有可能組合至少出現(xiàn)一次; ¨ 單元測試步驟 一般認為單元測試應(yīng)緊接在編碼之后,當源程序編制完成并通過復(fù)審和編譯檢查,便可開始單元測試。測試用例的設(shè)計應(yīng)與復(fù)審工作相結(jié)合,根據(jù)設(shè)計信息選取測試數(shù)據(jù),將增大發(fā)現(xiàn)各類錯誤的可能性。在確定測試用例的同時,應(yīng)給出期望結(jié)果。項目組完成單元測試,向項目監(jiān)理部提交驗收版本的同時必須一并遞交單元測試案例及測試問題報告記錄。 測試部由項目監(jiān)理部取得需測試系統(tǒng)的版本及相關(guān)文檔,若在測試期間發(fā)現(xiàn)單元測試中記錄的問題,如實記錄。項目監(jiān)理部
4、視具體情況酌情對該項目組的績效考核與項目評分加以控制。 不同語言及架構(gòu)的單元測試見附件。附件一 c語言單元測試規(guī)范 1. 基本要求 1.1 程序結(jié)構(gòu)清析,簡單易懂,單個函數(shù)的程序行數(shù)不得超過100行。 1.2 打算干什么,要簡單,直接了當,代碼精簡,避免垃圾程序。 1.3 盡量使用標準庫函數(shù)和公共函數(shù)。 1.4 不要隨意定義全局變量,盡量使用局部變量。 1.5 使用括號以避免二義性。 2.可讀性要求 2.1
5、60;可讀性第一,效率第二。2.2 保持注釋與代碼完全一致。 2.3 每個源程序文件,都有文件頭說明,說明規(guī)格見規(guī)范。 2.4 每個函數(shù),都有函數(shù)頭說明,說明規(guī)格見規(guī)范。 2.5 主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時,注釋能反映其含義。 2.7 常量定義(DEFINE)有相應(yīng)說明。 2.8 處理過程的每個階段都有相關(guān)注釋說明。 2.9 在典型算法前都有注釋。 2.10 利用縮進來顯示程序的邏輯結(jié)構(gòu),縮進量一致并以Tab鍵為單位,定義Tab
6、為 6個 字節(jié)。 2.11 循環(huán)、分支層次不要超過五層。 2.12 注釋可以與語句在同一行,也可以在上行。 2.13 空行和空白字符也是一種特殊注釋。 2.14 一目了然的語句不加注釋。 2.15 注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。 2.16 注釋行數(shù)(不包括程序頭和函數(shù)頭說明部份)應(yīng)占總行數(shù)的 1/5 到 1/3 。 3. 結(jié)構(gòu)化要求 3.1
7、;禁止出現(xiàn)兩條等價的支路。 3.2 禁止GOTO語句。 3.3 用 IF 語句來強調(diào)只執(zhí)行兩組語句中的一組。禁止 ELSE GOTO 和 ELSE RETURN。 3.4 用 CASE 實現(xiàn)多路分支。 3.5 避免從循環(huán)引出多個出口。 3.6 函數(shù)只有一個出口。 3.7 不使用條件賦值語句。 3.8 避免不必要的分支。 3.9 不要輕易用條件分支去
8、替換邏輯表達式。 4. 正確性與容錯性要求 4.1 程序首先是正確,其次是優(yōu)美 4.2 無法證明你的程序沒有錯誤,因此在編寫完一段程序后,應(yīng)先回頭檢查。 4.3 改一個錯誤時可能產(chǎn)生新的錯誤,因此在修改前首先考慮對其它程序的影響。 4.4 所有變量在調(diào)用前必須被初始化。 4.5 對所有的用戶輸入,必須進行合法性檢查。4.6 不要比較浮點數(shù)的相等, 如: 10.0 * 0.1 = 1.0
9、;, 不可靠 4.7 程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時,必須主動去處理發(fā)生的意外事件,如文件能否 邏輯鎖定、打印機是否聯(lián)機等。 4.8 單元測試也是編程的一部份,提交聯(lián)調(diào)測試的程序必須通過單元測試。 5. 可重用性要求 5.1 重復(fù)使用的完成相對獨立功能的算法或代碼應(yīng)抽象為公共控件或類。 5.2 公共控件或類應(yīng)考慮OO思想,減少外界聯(lián)系,考慮獨立性或封裝性。 5.3 公共控件或類應(yīng)建立使用模板。
10、0; 1適用范圍 本標準適用于利用Visul C+ ,Borland C+進行軟件程序開發(fā)的人員.。 .2變量命名 命名必須具有一定的實際意義,形式為xAbcFgh,x由變量類型確定,Abc、Fgh表示連續(xù)意 義字符串,如果連續(xù)意義字符串僅兩個,可都大寫.如OK. 具體例程: BOOL類型 bEnable; &
11、#160;ch * char chText c * 類對象 &
12、#160; cMain(對象實例) h * Handle(句柄) hWnd i * int n * 無符號
13、整型 p * 指針 sz,str * 字符串 w WORD x,y 坐標 Char或者TCHA
14、R類型 與Windows API有直接聯(lián)系的用szAppName10形式否則用 FileName10形式,單個字符也可用小寫字母表示; Int類型 nCmdShow; LONG類型 lParam; UINT類型
15、; uNotify; DWORD類型 dwStart; PSTR類型 pszTip; LPSTR類型 lpCmdLine LPTSTR類型
16、;lpszClassName; LPVOID類型 lpReserved WPARAM類型 wParam, LPARAM類型 lParam HWND類型 hDlg; HDC類型
17、 hDC; HINSTANCE類型 hInstance HANDLE類型 hInstance, HICON類型 hIcon; int
18、160; iTmp float fTmp DWORD dw* String , AnsiString
19、 str * m_ 類成員變量 m_nVal, m_bFlag g_ 全局變量
20、; g_nMsg, g_bFlag 局部變量中可采用如下幾個通用變量:nTemp,nResult,I,J(一般用于循環(huán)變量)。 其他資源句柄同上 .3常量命名和宏定義 常量和宏定義必須具有一定的實際意義; 常量和宏定義在#include和函數(shù)定義之間; 常量和宏定義必須全部以大寫字母來撰寫,中間可根據(jù)意義的連續(xù)性用下劃線連接,每一 條定義的右側(cè)必須有一簡單的注釋,說明其作用; 資源名字定義格式: 菜單:IDM_XX或者CM_XX
21、;位圖:IDB_XX 對話框:IDD_XX 字符串:IDS_XX DLGINIT:DIALOG_XX ICON:IDR_XX .4函數(shù)命名 函數(shù)原型說明包括引用外來函數(shù)及內(nèi)部函數(shù),外部引用必須在右側(cè)注明函數(shù)來源:模 塊名及文件名, 如是內(nèi)部函數(shù),只要注釋其定義文件名; 第一個字母必須使用大寫字母,要求用大小寫字母組合規(guī)范函數(shù)命名,必要時可用下劃線 間隔,示例如下: void UpdateDB_Tfgd (TRACK_NAME); f
22、ile:/Module Name :r01/sdw.c void PrintTrackData (TRACK_NAME); file:/Module Name :r04/tern.c void ImportantPoint (void); file:/Module Name :r01/sdw.c void ShowChar (int , int
23、160;, chtype); file:/Local Module void ScrollUp_V (int , int); Module .5結(jié)構(gòu)體命名 結(jié)構(gòu)體類型命名必須全部用大寫字母,原則上前面以下劃線開始;結(jié)構(gòu)體變量命名必須用 大小寫字母組合,第一個字母必須使用大寫字母,必要時可用下劃線間隔。對于私有數(shù) 據(jù)區(qū),必須注明其所屬的進程。全局數(shù)據(jù)定義只需注意其用途。
24、160; 示例如下: typedef struct
25、160;char szProductName20; char szAuthor20;
26、60; char szReleaseDate16; char szVersion10; unsigned long
27、60; MaxTables; unsigned long UsedTables; DBS_DATABASE; DBS_DATABASE GdataBase; 6 控件的命名: 用小寫前綴表示類別 用小寫前綴表示類別: fm
28、60; 窗口 cmd 按鈕 cob combo,下拉式列表框 txt 文本輸入框 lab labal,標簽 img image,圖象
29、;pic picture grd Grid,網(wǎng)格 scr 滾動條 lst 列表框 frm fram 7注釋 原則上注釋要求使用中文; 文件開始注釋內(nèi)容包括:公司名稱、版
30、權(quán)、作者名稱、時間、模塊用途、背景介紹等,復(fù) 雜的算法需要加上流程說明; 函數(shù)注釋包括:輸入、輸出、函數(shù)描述、流程處理、全局變量、調(diào)用樣例等,復(fù)雜的函數(shù) 需要加上變量用途說明; 程序中注釋包括:修改時間和作者、方便理解的注釋等; 引用一: 文件開頭的注釋模板 /* * 文件名: * Copyright (c) 1998-1999 *公司技術(shù)開發(fā)部 * 創(chuàng)建人: * 日&
31、#160;期: * 修改人: * 日 期: * 描 述: * * 版 本: *- - */ 引用二: 函數(shù)開頭的注釋模板 /* * 函數(shù)名: * 輸 入: a,b,c * a- * b- *
32、c- * 輸 出: x- * x 為 1, 表示. * x 為 0, 表示. * 功能描述: * 全局變量: * 調(diào)用模塊: * 作 者: * 日 期: * 修 改: * 日 期: * 版本 */
33、60; 引用三: 程序中的注釋模板 /*-*/ /* 注釋內(nèi)容 */ /*-*/ 8 程序 a. 程序編碼力求簡潔,結(jié)構(gòu)清晰,避免太多的分支結(jié)構(gòu)及太過于技巧性的程序, 盡量不采用遞歸模式。 b. 編寫程序時,亦必須想好測試的方法,換句話說,”單元測試” 的測試方案應(yīng)
34、160;在程序編寫時一并擬好。 c. 注釋一定要與程序一致。 d. 版本封存以后的修改一定要將老語句用/* */ 封閉,不能自行刪除或修改,并要 在文件及函數(shù)的修改記錄中加以記錄。 e. 程序中每個block 的開頭 ”" 及 "” 必須對齊,嵌套的block 每進一套, 縮進一個tab,TAB 為4個空格,block類型包括if、for、while、do等關(guān)
35、鍵字引出的。 f. 對于比較大的函數(shù),每個block 和特殊的函數(shù)調(diào)用,都必須注明其功能,舉例如下 : count.divisor = 1193280 / freq; / compute the proper count OutByte(unsigned short)67, (unsigned char)182); /
36、60;tell 8253 that a count is coming OutByte(unsigned short)66, count. c0); / send low-order byte OutByte(unsigned short)66, count. c1); / send high-order byte
37、160;××××××××××××××××××××××××××××××××××××××× bcb,delphi中的變量命名: 遵循匈牙利命名法,命 名必須有意義,制定如下
38、規(guī)定 窗體:以大寫的W開始,如About版權(quán)窗體, 命名為WAbout 文件:以大寫的F開始,如About版權(quán)窗體,文件命名為FAbout.cpp 按鈕(Button):如退出按鈕,命名為btnExit 基類:加base標記,如報表基類,窗體命名為:WBaseRep, 文件命名為FBaseRep.cpp 1. 在.h/.cpp的開頭應(yīng)有一段格式統(tǒng)一的說明,內(nèi)容包括: > a. 文件名 (FileNa
39、me); > b. 創(chuàng)建人 (Creater); > c. 文件創(chuàng)建時間 (Date); > d. 簡短說明文件功能、用途 (Comment)。 好習慣 > 2. 除非極其簡單,否則對函數(shù)應(yīng)有注釋說明。內(nèi)容包括:功能、入口/出口參數(shù),必 要 > 時還可有備注或補充說明。 還是好習慣 > 3. 每列代碼的長度推薦為 80列,
40、最長不得超過120列;折行以對齊為準。 太寬了,我的限制是60列,因為文本方式下屏幕一共80列,如果你用BC這一類的編輯 器,窗口邊框等又要占據(jù)一定空間,所以80列太寬 > 4. 循環(huán)、分支代碼,判斷條件與執(zhí)行代碼不得在同一行上。 很對 > 5. 指針的定義,* 號既可以緊接類型,也可以在變量名之前。 > > 例:可寫做:int* pnsize; > > 也可寫做:int *pns
41、ize; > > 但不得寫做:int * pnsize; 建議采用第二種,除非附加另外一條規(guī)定:一次只聲明一個變量,否則就會讓人混淆, 比如: int* a, b; 看起來b好像也是個指針,其實不是。 > 6. 在類的成員函數(shù)內(nèi)調(diào)用非成員函數(shù)時,在非成員函數(shù)名前必須加上":"。 這一條我倒覺得并不是必需的,我的看法是決不要讓你的類成員函數(shù)和全局函數(shù)的名稱 相同(或類似) >
42、;7. 函數(shù)入口參數(shù)有缺省值時,應(yīng)注釋說明。 > > 例:BOOL CWpsDib:PaintDIB(CDC* pDC, CRect& rc, > int nBrightness, file:/*=0*/ > BOOL bGrayScale file:/*=FALSE*/ ) 每個變量寫一行,必要時加上/*in, out*/注釋
43、 > 8. else if 必須寫在一行。 應(yīng)該盡量避免else if這樣的結(jié)構(gòu) > 9. 與、有關(guān)的各項規(guī)定: > > 9.1、應(yīng)獨占一行。在該行內(nèi)可有注釋。 > 9.2 必須另起一行, 之后的代碼必須縮進一個Tab。與必須在 同 > 一列上。 > 9.3 在循環(huán)、分支之后若只有一行代碼,雖然可省略、,但不推薦這么
44、;> 做。若省略后可能引起歧義,則必須加上、。 持保留意見,因為GNU的代碼規(guī)范是這樣的: if ( NULL = ptr ) / do something here 或者 if ( NULL = ptr ) /&
45、#160;do something here 爭論哪個更好并沒有意義,關(guān)鍵是統(tǒng)一,如果用VC當然你的辦法最方便,可是如果你用 emacs或者vi,就不是這樣了。 > 10. 與空格有關(guān)的各項規(guī)定。 > > 10.1 在所有兩目、三目運算符的兩邊都必須有空格。在單目運算符兩端不必空格。 但 > 在>、:、.、等運算符前后,及&(取地址)、* > (取值)等運算符之后不得有空格。
46、60;> 10.2 for、while、if 等關(guān)鍵詞之后應(yīng)有1個空格,再接(,之后無空格;在結(jié) 尾 > 的)前不得有空格。 我認為在括號兩端加空格并不是什么錯誤,尤其是在一個條件十分復(fù)雜的if語句里 > 10.3 調(diào)用函數(shù)、宏時,(、)前后不得有空格。 > 10.4 類型強制轉(zhuǎn)換時,()前后不得有空格 同上 > 11. 與縮進有關(guān)的各項規(guī)定 > >
47、160;11.1 縮進以 Tab 為單位。1 個 Tab 為 4 個空格 我認為這個值應(yīng)該更大,我自己使用8個空格,如果你的代碼因為縮進幅度太大而導(dǎo)致 折行,那么幾乎可以肯定你的程序設(shè)計方案有問題。 > 11.2 下列情況,代碼縮進一個 Tab: > 1. 函數(shù)體相對函數(shù)名及''、''。 > 2. if、else、for、while、do
48、;等之后的代碼。> 3. 一行之內(nèi)寫不下,折行之后的代碼,應(yīng)在合理的位置進行折行。若有 + - * / 等 運 > 算符,則運算符應(yīng)在上一行末尾,而不應(yīng)在下一行的行首。 這一條我反對,運算符應(yīng)該放在下一行行首,以使人能清楚的知道這一行是續(xù)上一行 的,比如 if ( something && somethingelse &&
49、160;otherthings ) 如果寫做 if ( something && somethingelse && otherthings ) 反而看不清楚 > 11.3 下列情況,不必縮進:switch 之后的 case、default。附件二 java語言單元測試規(guī)范 java語言的編程規(guī)范遵照公司的開發(fā)規(guī)范。 1.&
50、#160;基本要求 1.1 程序結(jié)構(gòu)清析,簡單易懂,單個函數(shù)的程序行數(shù)不得超過100行。 1.2代碼精簡,避免垃圾程序。 1.3 盡量使用標準庫函數(shù)和公共函數(shù)。 1.4 不要隨意定義全局變量,盡量使用局部變量。 1.5 使用括號以避免二義性。 2.可讀性要求 2.1 可讀性第一,效率第二。 2.2 保持注釋與代碼完全一致。 2.3 每個源程序文件,都有文件頭說明,說明規(guī)格見規(guī)范。 2.4 每個函數(shù),都有函
51、數(shù)頭說明,說明規(guī)格見規(guī)范。 2.5 主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時,注釋能反映其含義。 2.7 常量定義(DEFINE)有相應(yīng)說明。 2.8 處理過程的每個階段都有相關(guān)注釋說明。 2.9 在典型算法前都有注釋。 2.10 利用縮進來顯示程序的邏輯結(jié)構(gòu),縮進量一致并以Tab鍵為單位,定義Tab為 6個 字節(jié)。 2.11 循環(huán)、分支層次不要超過五層。 2.12 注釋可以與語句在同一行,也可以在上行。 2.13
52、0;空行和空白字符也是一種特殊注釋。 2.14 一目了然的語句不加注釋。 2.15 注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。 2.16 注釋行數(shù)(不包括程序頭和函數(shù)頭說明部份)應(yīng)占總行數(shù)的 1/5 到 1/3 。 3. 結(jié)構(gòu)化要求 3.1 禁止出現(xiàn)兩條等價的支路。 3.2 禁止GOTO語句。 3.3 用 IF 語句來強調(diào)只執(zhí)行兩組語句中的一組。禁止 ELSE&
53、#160;GOTO 和 ELSE RETURN。 3.4 用 CASE 實現(xiàn)多路分支。 3.5 避免從循環(huán)引出多個出口。 3.6 函數(shù)只有一個出口。 3.7 不使用條件賦值語句。 3.8 避免不必要的分支。 3.9 不要輕易用條件分支去替換邏輯表達式。 4. 正確性與容錯性要求 4.1 程序首先是正確,其次是優(yōu)美 4.2 無法證明你的程序沒有錯誤,因此在編
54、寫完一段程序后,應(yīng)先回頭檢查。 4.3 改一個錯誤時可能產(chǎn)生新的錯誤,因此在修改前首先考慮對其它程序的影響。4.4 所有變量在調(diào)用前必須被初始化。 4.5 對所有的用戶輸入,必須進行合法性檢查。 4.6 不要比較浮點數(shù)的相等, 如: 10.0 * 0.1 = 1.0 , 不可靠 4.7 程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時,必須主動去處理發(fā)生的意外事件,如文件能否 邏輯鎖定、打印機是否聯(lián)機等。 4.8 單元
55、測試也是編程的一部份,提交聯(lián)調(diào)測試的程序必須通過單元測試。 5. 可重用性要求 5.1 重復(fù)使用的完成相對獨立功能的算法或代碼應(yīng)抽象為公共控件或類。 5.2 公共控件或類應(yīng)考慮OO思想,減少外界聯(lián)系,考慮獨立性或封裝性。 5.3 公共控件或類應(yīng)建立使用模板。 命名規(guī)范 定義這個規(guī)范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因
56、為換人而帶來的損失。(這些規(guī)范并不是一定要絕對遵守,但是一定要讓程序有良好的可讀性) Package 的命名 Package 的名字應(yīng)該都是由一個小寫單詞組成。 Class 的命名 Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成 Class 變量的命名 變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。 Static Final 變量的
57、命名 Static Final 變量的名字應(yīng)該都大寫,并且指出完整含義。 參數(shù)的命名 參數(shù)的名字必須和變量的命名規(guī)范一致。 數(shù)組的命名 數(shù)組應(yīng)該總是用下面的方式來命名: byte buffer; 而不是: byte buffer; 方法的參數(shù) 使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字:
58、60;SetCounter(int size) this.size = size; Java 文件樣式 所有的 Java(*.java) 文件都必須遵守如下的樣式規(guī)則 版權(quán)信息 版權(quán)信息必須在 java 文件的開頭,比如: /* * Copyright ? 2000 Shanghai
59、60;XXX Co. Ltd. * All right reserved. */ 其他不需要出現(xiàn)在 javadoc 的信息也可以包含在這里。 Package/Imports package 行要在 import 行之前,import 中標準的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個包中的不同子
60、目錄,則應(yīng)該用 * 來處理。 package .stats; import java.io.*; import java.util.Observable; import hotlava.util.Application; 這里 java.io.* 使用來代替InputStream and OutputStream 的。 Class&
61、#160; 接下來的是類的注釋,一般是用來解釋類的。 /* * A class representing a set of packet and byte counters * It is observable to allow it to be watched, but only *
62、60;reports changes when the current set is complete */ 接下來是類定義,包含了在不同的行的 extends 和 implements public class CounterSet extends Observable implements Cloneable
63、Class Fields 接下來是類的成員變量: /* * Packet counters */ protected int packets; public 的成員變量必須生成文檔(JavaDoc)。Proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。 存取方法 接下來
64、是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。 /* Get the counters * return an array containing the statistical data. This array has been * freshly allocated and can be m
65、odified by the caller. */ public int getPackets() return copyArray(packets, offset); public int getBytes() return copyArray(bytes, offset); public int getPac
66、kets() return packets; public void setPackets(int packets) this.packets = packets; 其它的方法不要寫在一行上 構(gòu)造函數(shù) 接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面)。 訪問類型 ("public",
67、0;"private" 等.) 和 任何 "static", "final" 或 "synchronized" 應(yīng)該在一行中,并且方法和參數(shù)另寫一行,這樣可以使方法和參數(shù)更易讀。 public CounterSet(int size) this.size = size; 克隆方法
68、60;如果這個類是可以被克隆的,那么下一步就是 clone 方法: public Object clone() try CounterSet obj = (CounterSet)super.clone(); obj.packets = (int)packets.clone(); obj.size = size; retu
69、rn obj; catch(CloneNotSupportedException e) throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage(); 類方法 下面開始寫類的方法: /* * S
70、et the packet counters * (such as when restoring from a database) */ protected final void setArray(int r1, int r2, int r3, int r4) throws Illegal
71、ArgumentException / / Ensure the arrays are of equal size / if (r1.length != r2.length | r1.length != r3.length | r1.length != r4.length) throw
72、 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); toStrin
73、g 方法 無論如何,每一個類都應(yīng)該定義 toString 方法: public String toString() String retval = "CounterSet: " for (int I = 0; I < data.length(); i+) r
74、etval += data.bytes.toString(); retval += data.packets.toString(); return retval; main 方法 如果main(String) 方法已經(jīng)定義了, 那么它應(yīng)該寫在類的底部. 代碼編寫格式 代碼樣式 代碼
75、應(yīng)該用 unix 的格式,而不是 windows 的(比如:回車變成回車+換行) 文檔化 必須用 javadoc 來為類生成文檔。不僅因為它是標準,這也是被各種 java 編譯器都認可的方法。使用 author 標記是不被推薦的,因為代碼不應(yīng)該是被個人擁有的。 縮進 縮進應(yīng)該是每行2個空格. 不要在源文件中保存Tab字符. 在使用不同的源代碼管理工具時Tab字符將因為用戶設(shè)置的不同而擴展為
76、不同的寬度. 如果你使用 UltrEdit 作為你的 Java 源代碼編輯器的話,你可以通過如下操作來禁止保存Tab字符, 方法是通過 UltrEdit中先設(shè)定 Tab 使用的長度室2個空格,然后用 Format|Tabs to Spaces 菜單將 Tab 轉(zhuǎn)換為空格。 頁寬 頁寬應(yīng)該設(shè)置為80字符. 源代碼一般不會超過這個寬度, 并導(dǎo)致無法完整顯示, 但這一
77、設(shè)置也可以靈活調(diào)整. 在任何情況下, 超長的語句應(yīng)該在一個逗號或者一個操作符后折行. 一條語句折行后, 應(yīng)該比原來的語句再縮進2個字符. 對 中的語句應(yīng)該單獨作為一行. 例如, 下面的第1行是錯誤的, 第2行是正確的: if (i>0) I + / 錯誤, 和 在同一行 if (i>0) I + / 正確,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械質(zhì)量檢測服務(wù)合同
- 職場辦公技能培訓(xùn)教育范文
- 高考語文復(fù)習:人物傳記類文言文專練
- 電線電纜采購合同書
- 法律行業(yè)律師服務(wù)費用免責協(xié)議
- 經(jīng)典童話白雪公主的解讀與賞析
- 高考英語完形填空專題集中訓(xùn)練含參考答案(5份)
- 農(nóng)村居民公共服務(wù)需求滿足指導(dǎo)手冊
- 問題解決指南
- 金融科技服務(wù)風險免責合同
- 大班語言活動-海豹到哪里去了
- 小班社會《認識家用電器》課件
- 高考概率大題必練20題(理科)-含答案
- 涼水井煤礦礦山地質(zhì)環(huán)境與土地復(fù)墾方案
- 果實酚類和揮發(fā)性物質(zhì)含量特征及其與果實品質(zhì)關(guān)系的研究
- 2023年東華高級中學(xué)中考自招數(shù)學(xué)復(fù)習題及答案解析
- 結(jié)果比過程重要辯論賽
- JTG C10-2007 公路勘測規(guī)范
- 工程結(jié)算審核項目投標技術(shù)方案造價咨詢服務(wù)方案
- 高中英語2024屆新高考詞匯轉(zhuǎn)換匯總(共六組)
- 2024年廣州市高三一模高考英語試卷試題答案詳解(含作文范文)
評論
0/150
提交評論