YKTSJAVA編程規(guī)范_第1頁(yè)
YKTSJAVA編程規(guī)范_第2頁(yè)
YKTSJAVA編程規(guī)范_第3頁(yè)
YKTSJAVA編程規(guī)范_第4頁(yè)
YKTSJAVA編程規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 1 CMMI 受控文檔某公司 文件編號(hào):YKTS0306保密級(jí)別:公司機(jī)密 JAVA 語(yǔ)言編程規(guī)范 編 制: 審 核:批 準(zhǔn):存放位置:某公司 發(fā)布文檔修訂記錄 2 CMMI 受控文檔版本編號(hào)或者更改記錄編號(hào)變化狀態(tài)簡(jiǎn)要說(shuō)明(變更內(nèi)容和變更范圍)日期變更人批準(zhǔn)日期批準(zhǔn)人*變化狀態(tài):C創(chuàng)建,A增加,M修改,D刪除 3 CMMI 受控文檔目錄JAVA 語(yǔ)言編程規(guī)范.1第一章 命名規(guī)范.41.1 包(PACKAGE)命名.41.2 接口和類(lèi)(INTERFACE & CLASS)命名.41.3 方法(METHOD)命名.41.4 變量(VARIABLE)命名.5第二章 程序的布局和風(fēng)格.52

2、.1 JAVA 文件布局.52.1.1 版權(quán)信息聲明.52.1.2 package 和 import 部分.52.1.3 類(lèi)和接口聲明部分.62.2 聲明和語(yǔ)句布局.62.2.1 變量、類(lèi)和接口的聲明.62.2.2 語(yǔ)句.72.3 縮進(jìn)和空格的使用.82.3.1 縮進(jìn)規(guī)則 .92.3.2 續(xù)行規(guī)則 .92.3.3 空行的使用.102.3.4 空格的使用.10第三章 注釋.103.1 代碼注釋.103.1.1 常規(guī)注釋.113.1.2 單行注釋.113.1.3 行尾注釋.113.1.4 標(biāo)注型注釋.113.2 文檔注釋.11第四章 有關(guān) JAVA 編程的若干建議.12 4 CMMI 受控文檔第一

3、章 命名規(guī)范命名規(guī)范主要是針對(duì)如下范疇:包Package接口、類(lèi)Interface, Class方法Method變量 基本原則含義清晰,盡量體現(xiàn)出名字在程序中的邏輯含義風(fēng)格一致,即前后的縮寫(xiě)保持一致,整個(gè)程序使用的命名風(fēng)格一致。1.1 包( Package)命名(1)統(tǒng)一使用小寫(xiě)單詞加分隔符“.”來(lái)為Package命名;(2)Package的名字使用類(lèi)似于域名的層次結(jié)構(gòu)。Package名的前綴固定為“com.xxxxx.” ,其中xxxxx為公司名(或數(shù)據(jù)庫(kù)項(xiàng)目名稱) ,具體名字待定;(3)Package的層次結(jié)構(gòu)和命名由研發(fā)經(jīng)理統(tǒng)一劃定,劃分在每個(gè)層次下的類(lèi)和子Package應(yīng)該是邏輯相關(guān)的

4、。1.2 接口和類(lèi)( Interface & Class)命名(1)接口和類(lèi)的名字由若干首字母大寫(xiě)的單詞組成,已經(jīng)約定成俗的大寫(xiě)術(shù)語(yǔ)以及相應(yīng)的縮略語(yǔ)除外;(2)盡量使用名詞性短語(yǔ);(3)盡量少的使用縮略語(yǔ),除非該縮略語(yǔ)已經(jīng)成為規(guī)范,比如ULR,GSM等;(4)保存接口和類(lèi)的文件的名字與其中聲明為“public”接口和類(lèi)的名字必須完全相同。1.3 方法( Method)命名(1)第一個(gè)單詞的首字母小寫(xiě),后續(xù)單詞的首字母大寫(xiě);(2)盡量使用動(dòng)詞性短語(yǔ)作為方法的名字;1.4 變量( Variable)命名 5 CMMI 受控文檔(1)第一個(gè)單詞的首字母小寫(xiě),后續(xù)單詞的首字母大寫(xiě);(2)類(lèi)的成

5、員變量添加“m_”前綴;(3)Static Final類(lèi)型的變量采用全部大寫(xiě)的形式,并使用下劃線對(duì)單詞進(jìn)行分割;(4)對(duì)于作用域很小的臨時(shí)變量和循環(huán)變量,可以使用類(lèi)似“i, j, k”的單字符表示,否則不能使用單字符表示變量;(5)方法內(nèi)的局部變量的命名盡可能簡(jiǎn)短,但意義必須明確;(6)方法參數(shù)的命名規(guī)則與變量的命名規(guī)則相同第二章 程序的布局和風(fēng)格2.1 JAVA 文件 布局一個(gè)源文件中包含一個(gè)public類(lèi)或接口。下面按照在文件中出現(xiàn)的先后順序來(lái)描述JAVA語(yǔ)言中一個(gè)類(lèi)或者接口文件中應(yīng)該具備的各個(gè)組成成份。2.1.1 版權(quán)信息聲明格式如下:/* 類(lèi)或接口的名字* 版本信息* 創(chuàng)建時(shí)間* Co

6、pyright 2003, * All rights reserved.* */JAVA工具javadoc可以自動(dòng)提取類(lèi)或者接口文件中的有關(guān)注釋信息作為幫助文檔。 “版權(quán)信息聲明”部分不會(huì)出現(xiàn)在由javadoc提取的幫助文檔中。所以,可以在此部分添加不希望出現(xiàn)在幫助文檔中的有關(guān)信息2.1.2 package 和 import 部分package com.xxxx.import部分緊跟在package聲明之后(以一空行分割) 。Import的順序?yàn)椋海?)標(biāo)準(zhǔn)的JAVA packages 6 CMMI 受控文檔(2)第三方的packages(3)本地的packages每部分之間使用一個(gè)空行進(jìn)行分

7、割。同一部分盡量按照package名的字典順序進(jìn)行排列。2.1.3 類(lèi)和接口聲明部分下表按照先后順序羅列出類(lèi)和接口聲明部分可能會(huì)包括的內(nèi)容:編號(hào)內(nèi)容注釋1類(lèi)/接口文檔注釋有關(guān)此部分應(yīng)包括的內(nèi)容參見(jiàn)幫助文檔注釋一節(jié)的說(shuō)明2類(lèi)或者接口聲明語(yǔ)句3類(lèi)/接口實(shí)現(xiàn)注釋改部分注釋包含了針對(duì)類(lèi)或者接口一級(jí)的注釋說(shuō)明,并且這些注釋不需要或不能出現(xiàn)在幫助文檔注釋中。4類(lèi)靜態(tài)成員變量先public, 然后protected,最后private5類(lèi)成員變量先public, 然后protected,接著package一級(jí)(沒(méi)有訪問(wèn)修飾符) ,最后private6構(gòu)造函數(shù)7方法方法應(yīng)該根據(jù)功能進(jìn)行分組,而不是根據(jù)訪問(wèn)的先

8、后順序或者作用域。例如一個(gè)私有方法可以出現(xiàn)在兩個(gè)public方法之間。分組的目標(biāo)是使代碼更容易閱讀和理解。2.2 聲明和語(yǔ)句布局2.2.1 變量、類(lèi)和接口的聲明(1)通常,每行只聲明一個(gè)變量。不要把不同類(lèi)型的變量的聲明放在同一行中。使用制表符分割類(lèi)型和變量標(biāo)識(shí)符,并盡可能對(duì)齊。(2)變量聲明一般出現(xiàn)在程序塊的開(kāi)始位置(一個(gè)程序塊指的是包含在一對(duì)“” 、 “”之間的所有語(yǔ)句) ,而不要在第一次使用變量的地方才聲明此變量。一個(gè)例外是可以在循環(huán)語(yǔ)句中聲明變量。(3)在聲明類(lèi)和接口時(shí),遵循如下布局規(guī)則:在方法名和參數(shù)列表的“(”之間無(wú)需插入空格,各個(gè)參數(shù)間以空格分割“”放在聲明語(yǔ)句的尾部“”另起一行,

9、并與對(duì)應(yīng)的聲明起始位置對(duì)齊 7 CMMI 受控文檔不同方法間至少以一空行分割2.2.2 語(yǔ)句簡(jiǎn)單語(yǔ)句每行只包含一條簡(jiǎn)單語(yǔ)句,不要把多條語(yǔ)句放在同一行中。if, if-else 以及 if else-if else 語(yǔ)句if-else 類(lèi)語(yǔ)句使用如下格式:if (condition) statements;if (condition) statements; else statements;if (condition) statements; else if (condition) statements; else statements;for 語(yǔ)句for (initialization; co

10、ndition; update) statements;while 語(yǔ)句while (condition) statements;do-while 語(yǔ)句do statements; while (condition); 8 CMMI 受控文檔switch 語(yǔ)句switch (condition) caseABC:statements;/* falls through */caseDEF:statements;break;caseXYZ:statements;break;default:statements;break;如果某個(gè) case 成份不包含 break 語(yǔ)句,需要加注釋著重說(shuō)明。每條

11、switch 語(yǔ)句都必須包含default 部分。try-catch 語(yǔ)句try statements; catch (ExceptionClass e) statements;try statements; catch (ExceptionClass e) statements; finally statements;2.3 縮進(jìn)和空格的使用2.3.1 縮進(jìn)規(guī)則 9 CMMI 受控文檔(1)使用空格和制表符進(jìn)行縮進(jìn),自動(dòng)縮進(jìn)和制表符的間距統(tǒng)一為 4 個(gè)空格(2)一般不要進(jìn)行空格和制表符之間的相互替換,即使替換,也要嚴(yán)格遵循一個(gè)制表符等同于4 個(gè)空格的準(zhǔn)則(3)使用不同的編輯器編輯源程序時(shí),必

12、須保持自動(dòng)縮進(jìn)和制表符間距的一致(4)控制語(yǔ)句的縮進(jìn)參見(jiàn) 2.2 小節(jié)(5)對(duì)于已有的代碼,遵循其原有的縮進(jìn)風(fēng)格,或者統(tǒng)一修改為新的縮進(jìn)格式。不要混合使用不同的縮進(jìn)格式,以免造成代碼布局的混亂(6)避免過(guò)度縮進(jìn),從而造成大量代碼位于編輯窗口的右側(cè)。如果出現(xiàn)這種情況,需要考慮增加新的方法2.3.2 續(xù)行規(guī)則通常將行的長(zhǎng)度限制在 80 個(gè)字符以內(nèi),注釋文檔的行長(zhǎng)限制在 70 個(gè)字符以內(nèi)。超過(guò)限長(zhǎng)的代碼應(yīng)該進(jìn)行續(xù)行處理。下面是針對(duì)表達(dá)式和控制語(yǔ)句的一些續(xù)行處理規(guī)則:(1)在逗號(hào)和某個(gè)操作符之后續(xù)行(2)對(duì)于多層次嵌套的表達(dá)式,盡量保證同一行中的表達(dá)式是相對(duì)完整的,如:longName1 = long

13、Name2 * (longName3 + longName4 longName5) +4 * longName6; / 好的續(xù)行處理風(fēng)格longName1 = longName2 * (longName3 + longName4 longName5) + 4 * longName6; / 不好的續(xù)行處理風(fēng)格(3)續(xù)行應(yīng)進(jìn)行縮進(jìn)處理,續(xù)行的縮進(jìn)遵循如下一些原則:續(xù)行盡量與上一行中屬于同一層次的表達(dá)式對(duì)齊如果續(xù)行對(duì)齊的處理使得整個(gè)語(yǔ)句顯得過(guò)于的“左輕右重”的話,可以考慮統(tǒng)一減少該語(yǔ)句的縮進(jìn)量對(duì)于控制語(yǔ)句,特別是 if 語(yǔ)句,應(yīng)該使續(xù)行的縮進(jìn)與后續(xù)語(yǔ)句體的縮進(jìn)能夠明顯區(qū)分,如:if (conditi

14、on1 & condition2) |(condition3 & condition4) |!(condition5 & condition6) doSomethingAboutIt();/ 此行與上面的續(xù)行在縮進(jìn)上無(wú)法明顯區(qū)分if (condition1 & condition2) |(condition3 & condition4) |!(condition5 & condition6) doSomethingAboutIt();/ 盡管違背了對(duì)齊原則,但這種續(xù)行處理更合適 10 CMMI 受控文檔2.3.3 空行的使用通過(guò)插入空行將程序中邏

15、輯相關(guān)的部分與其他部分明顯區(qū)分開(kāi),從而增強(qiáng)程序的可讀性。在如下情況下應(yīng)該插入兩行空行:(1)在源程序文件中的不同章節(jié)之間,如版權(quán)聲明和 import 部分之間、以及 import 部分和類(lèi)定義之間等等;(2)不同的類(lèi)和接口定義之間在如下情況下應(yīng)該插入一行空行:(1)在不同的方法之間(2)在局部變量和第一條語(yǔ)句之間(3)在不同的語(yǔ)句組之間2.3.4 空格的使用在如下情況下應(yīng)該使用空格:(1)在關(guān)鍵詞和左括號(hào)之間,以及右括號(hào)和左花括號(hào)之間。注意:不要在方法名和左括號(hào)之間插入空格。左括號(hào)的右邊、以及右括號(hào)的左邊一般不添加空格(2)在方法的參數(shù)列表中,應(yīng)該在參數(shù)間的“,”后添加空格(3)在除了“.”之

16、外的所有二元操作符的前后添加空格。注意:一元操作符(如+, -)和操作數(shù)之間不添加空格(4)for 語(yǔ)句的表達(dá)式之間應(yīng)該使用空格分割第三章 注釋Java 程序有兩種類(lèi)型的注釋?zhuān)捍a注釋和文檔注釋。代碼注釋與 C 和 C+類(lèi)似,通過(guò)/* */和/ 標(biāo)注。文檔注釋只用于 Java 語(yǔ)言,通過(guò)/* */標(biāo)注。文檔注釋可以通過(guò) javadoc 工具從程序中自動(dòng)抽取,從而生成相應(yīng)的 HTML 格式的幫助文檔。代碼注釋用于對(duì)特定代碼的實(shí)現(xiàn)方式進(jìn)行解釋說(shuō)明,以幫助其他程序員閱讀代碼,是面向開(kāi)發(fā)和維護(hù)此代碼的程序員的。而文檔注釋則是用于描述代碼的功能和接口規(guī)范,是面向使用此代碼提供的功能和接口的人員的,這些人

17、看到的只是一個(gè)接口,而非代碼的細(xì)節(jié)。3.1 代碼注釋代碼注釋主要分四種類(lèi)型:常規(guī)注釋、單行注釋、行尾注釋和標(biāo)注型注釋。 11 CMMI 受控文檔3.1.1 常規(guī)注釋常規(guī)注釋用于為文件、方法、數(shù)據(jù)結(jié)構(gòu)和算法提供恰當(dāng)?shù)拿枋龊妥⒔?。通常,常?guī)注釋中的描述文字多于一行。常規(guī)注釋必須與所解釋的代碼對(duì)齊,并位于相應(yīng)代碼的頭部。常規(guī)注釋采用如下格式:/ * 從此行開(kāi)始寫(xiě)常規(guī)注釋* */3.1.2 單行注釋單行注釋為隨后的代碼和數(shù)據(jù)結(jié)構(gòu)提供簡(jiǎn)短的注解和說(shuō)明。單行注釋可以采用/* */和/ 兩種形式單行注釋必須與隨后的代碼對(duì)齊,如:if (condition) /* Handle the condition *

18、/ 3.1.3 行尾注釋行尾注釋位于被注解代碼行的尾部,盡量使行尾注釋的位置看起來(lái)比較顯著,避免其隱藏在大量代碼中間。行尾注釋可以采用/* */和/ 兩種形式。同一代碼塊相關(guān)的行尾注釋?xiě)?yīng)該盡可能對(duì)齊,如:if (a = 2) return TRUE;/* special case */ else return isPrime(a);/* works only for odd a */3.1.4 標(biāo)注型注釋?zhuān)?)對(duì)未完成的代碼添加/TODO : XXX 的注釋。(2)對(duì)發(fā)現(xiàn)了錯(cuò)誤,但還未修改的代碼添加/BUG: XXX 的注釋。3.2 文檔注釋有關(guān)如何書(shū)寫(xiě)文檔注釋以及利用 javadoc 生成幫助文檔的更多詳細(xì)內(nèi)容請(qǐng)參與 SUN 公司網(wǎng)站上 12 CMMI 受控文檔的如下鏈接:http:/ 有關(guān) Java 編程的若干建議(1)可讀性、易理解性比展示編程技巧來(lái)得更重要。(2)盡管 Java 會(huì)對(duì)變量的缺省值進(jìn)行初始化,但還是要養(yǎng)成在聲明局部變量時(shí)就進(jìn)行初始化的習(xí)慣。(3)在嵌套的程序結(jié)構(gòu)中,避免出現(xiàn)里層的變量聲明覆蓋外層變量聲明的情況,如:int count; myMethod () if (condition) int count;/ 避免出現(xiàn)這種情況 (4)使用存取方法來(lái)訪問(wèn)類(lèi)成員變量,而不是直接存取

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論