




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 1 CMMI 受控文檔某公司 文件編號:YKTS0306保密級別:公司機密 JAVA 語言編程規(guī)范 編 制: 審 核:批 準:存放位置:某公司 發(fā)布文檔修訂記錄 2 CMMI 受控文檔版本編號或者更改記錄編號變化狀態(tài)簡要說明(變更內(nèi)容和變更范圍)日期變更人批準日期批準人*變化狀態(tài):C創(chuàng)建,A增加,M修改,D刪除 3 CMMI 受控文檔目錄JAVA 語言編程規(guī)范.1第一章 命名規(guī)范.41.1 包(PACKAGE)命名.41.2 接口和類(INTERFACE & CLASS)命名.41.3 方法(METHOD)命名.41.4 變量(VARIABLE)命名.5第二章 程序的布局和風格.52
2、.1 JAVA 文件布局.52.1.1 版權信息聲明.52.1.2 package 和 import 部分.52.1.3 類和接口聲明部分.62.2 聲明和語句布局.62.2.1 變量、類和接口的聲明.62.2.2 語句.72.3 縮進和空格的使用.82.3.1 縮進規(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 標注型注釋.113.2 文檔注釋.11第四章 有關 JAVA 編程的若干建議.12 4 CMMI 受控文檔第一
3、章 命名規(guī)范命名規(guī)范主要是針對如下范疇:包Package接口、類Interface, Class方法Method變量 基本原則含義清晰,盡量體現(xiàn)出名字在程序中的邏輯含義風格一致,即前后的縮寫保持一致,整個程序使用的命名風格一致。1.1 包( Package)命名(1)統(tǒng)一使用小寫單詞加分隔符“.”來為Package命名;(2)Package的名字使用類似于域名的層次結構。Package名的前綴固定為“com.xxxxx.” ,其中xxxxx為公司名(或數(shù)據(jù)庫項目名稱) ,具體名字待定;(3)Package的層次結構和命名由研發(fā)經(jīng)理統(tǒng)一劃定,劃分在每個層次下的類和子Package應該是邏輯相關的
4、。1.2 接口和類( Interface & Class)命名(1)接口和類的名字由若干首字母大寫的單詞組成,已經(jīng)約定成俗的大寫術語以及相應的縮略語除外;(2)盡量使用名詞性短語;(3)盡量少的使用縮略語,除非該縮略語已經(jīng)成為規(guī)范,比如ULR,GSM等;(4)保存接口和類的文件的名字與其中聲明為“public”接口和類的名字必須完全相同。1.3 方法( Method)命名(1)第一個單詞的首字母小寫,后續(xù)單詞的首字母大寫;(2)盡量使用動詞性短語作為方法的名字;1.4 變量( Variable)命名 5 CMMI 受控文檔(1)第一個單詞的首字母小寫,后續(xù)單詞的首字母大寫;(2)類的成
5、員變量添加“m_”前綴;(3)Static Final類型的變量采用全部大寫的形式,并使用下劃線對單詞進行分割;(4)對于作用域很小的臨時變量和循環(huán)變量,可以使用類似“i, j, k”的單字符表示,否則不能使用單字符表示變量;(5)方法內(nèi)的局部變量的命名盡可能簡短,但意義必須明確;(6)方法參數(shù)的命名規(guī)則與變量的命名規(guī)則相同第二章 程序的布局和風格2.1 JAVA 文件 布局一個源文件中包含一個public類或接口。下面按照在文件中出現(xiàn)的先后順序來描述JAVA語言中一個類或者接口文件中應該具備的各個組成成份。2.1.1 版權信息聲明格式如下:/* 類或接口的名字* 版本信息* 創(chuàng)建時間* Co
6、pyright 2003, * All rights reserved.* */JAVA工具javadoc可以自動提取類或者接口文件中的有關注釋信息作為幫助文檔。 “版權信息聲明”部分不會出現(xiàn)在由javadoc提取的幫助文檔中。所以,可以在此部分添加不希望出現(xiàn)在幫助文檔中的有關信息2.1.2 package 和 import 部分package com.xxxx.import部分緊跟在package聲明之后(以一空行分割) 。Import的順序為:(1)標準的JAVA packages 6 CMMI 受控文檔(2)第三方的packages(3)本地的packages每部分之間使用一個空行進行分
7、割。同一部分盡量按照package名的字典順序進行排列。2.1.3 類和接口聲明部分下表按照先后順序羅列出類和接口聲明部分可能會包括的內(nèi)容:編號內(nèi)容注釋1類/接口文檔注釋有關此部分應包括的內(nèi)容參見幫助文檔注釋一節(jié)的說明2類或者接口聲明語句3類/接口實現(xiàn)注釋改部分注釋包含了針對類或者接口一級的注釋說明,并且這些注釋不需要或不能出現(xiàn)在幫助文檔注釋中。4類靜態(tài)成員變量先public, 然后protected,最后private5類成員變量先public, 然后protected,接著package一級(沒有訪問修飾符) ,最后private6構造函數(shù)7方法方法應該根據(jù)功能進行分組,而不是根據(jù)訪問的先
8、后順序或者作用域。例如一個私有方法可以出現(xiàn)在兩個public方法之間。分組的目標是使代碼更容易閱讀和理解。2.2 聲明和語句布局2.2.1 變量、類和接口的聲明(1)通常,每行只聲明一個變量。不要把不同類型的變量的聲明放在同一行中。使用制表符分割類型和變量標識符,并盡可能對齊。(2)變量聲明一般出現(xiàn)在程序塊的開始位置(一個程序塊指的是包含在一對“” 、 “”之間的所有語句) ,而不要在第一次使用變量的地方才聲明此變量。一個例外是可以在循環(huán)語句中聲明變量。(3)在聲明類和接口時,遵循如下布局規(guī)則:在方法名和參數(shù)列表的“(”之間無需插入空格,各個參數(shù)間以空格分割“”放在聲明語句的尾部“”另起一行,
9、并與對應的聲明起始位置對齊 7 CMMI 受控文檔不同方法間至少以一空行分割2.2.2 語句簡單語句每行只包含一條簡單語句,不要把多條語句放在同一行中。if, if-else 以及 if else-if else 語句if-else 類語句使用如下格式:if (condition) statements;if (condition) statements; else statements;if (condition) statements; else if (condition) statements; else statements;for 語句for (initialization; co
10、ndition; update) statements;while 語句while (condition) statements;do-while 語句do statements; while (condition); 8 CMMI 受控文檔switch 語句switch (condition) caseABC:statements;/* falls through */caseDEF:statements;break;caseXYZ:statements;break;default:statements;break;如果某個 case 成份不包含 break 語句,需要加注釋著重說明。每條
11、switch 語句都必須包含default 部分。try-catch 語句try statements; catch (ExceptionClass e) statements;try statements; catch (ExceptionClass e) statements; finally statements;2.3 縮進和空格的使用2.3.1 縮進規(guī)則 9 CMMI 受控文檔(1)使用空格和制表符進行縮進,自動縮進和制表符的間距統(tǒng)一為 4 個空格(2)一般不要進行空格和制表符之間的相互替換,即使替換,也要嚴格遵循一個制表符等同于4 個空格的準則(3)使用不同的編輯器編輯源程序時,必
12、須保持自動縮進和制表符間距的一致(4)控制語句的縮進參見 2.2 小節(jié)(5)對于已有的代碼,遵循其原有的縮進風格,或者統(tǒng)一修改為新的縮進格式。不要混合使用不同的縮進格式,以免造成代碼布局的混亂(6)避免過度縮進,從而造成大量代碼位于編輯窗口的右側。如果出現(xiàn)這種情況,需要考慮增加新的方法2.3.2 續(xù)行規(guī)則通常將行的長度限制在 80 個字符以內(nèi),注釋文檔的行長限制在 70 個字符以內(nèi)。超過限長的代碼應該進行續(xù)行處理。下面是針對表達式和控制語句的一些續(xù)行處理規(guī)則:(1)在逗號和某個操作符之后續(xù)行(2)對于多層次嵌套的表達式,盡量保證同一行中的表達式是相對完整的,如:longName1 = long
13、Name2 * (longName3 + longName4 longName5) +4 * longName6; / 好的續(xù)行處理風格longName1 = longName2 * (longName3 + longName4 longName5) + 4 * longName6; / 不好的續(xù)行處理風格(3)續(xù)行應進行縮進處理,續(xù)行的縮進遵循如下一些原則:續(xù)行盡量與上一行中屬于同一層次的表達式對齊如果續(xù)行對齊的處理使得整個語句顯得過于的“左輕右重”的話,可以考慮統(tǒng)一減少該語句的縮進量對于控制語句,特別是 if 語句,應該使續(xù)行的縮進與后續(xù)語句體的縮進能夠明顯區(qū)分,如:if (conditi
14、on1 & condition2) |(condition3 & condition4) |!(condition5 & condition6) doSomethingAboutIt();/ 此行與上面的續(xù)行在縮進上無法明顯區(qū)分if (condition1 & condition2) |(condition3 & condition4) |!(condition5 & condition6) doSomethingAboutIt();/ 盡管違背了對齊原則,但這種續(xù)行處理更合適 10 CMMI 受控文檔2.3.3 空行的使用通過插入空行將程序中邏
15、輯相關的部分與其他部分明顯區(qū)分開,從而增強程序的可讀性。在如下情況下應該插入兩行空行:(1)在源程序文件中的不同章節(jié)之間,如版權聲明和 import 部分之間、以及 import 部分和類定義之間等等;(2)不同的類和接口定義之間在如下情況下應該插入一行空行:(1)在不同的方法之間(2)在局部變量和第一條語句之間(3)在不同的語句組之間2.3.4 空格的使用在如下情況下應該使用空格:(1)在關鍵詞和左括號之間,以及右括號和左花括號之間。注意:不要在方法名和左括號之間插入空格。左括號的右邊、以及右括號的左邊一般不添加空格(2)在方法的參數(shù)列表中,應該在參數(shù)間的“,”后添加空格(3)在除了“.”之
16、外的所有二元操作符的前后添加空格。注意:一元操作符(如+, -)和操作數(shù)之間不添加空格(4)for 語句的表達式之間應該使用空格分割第三章 注釋Java 程序有兩種類型的注釋:代碼注釋和文檔注釋。代碼注釋與 C 和 C+類似,通過/* */和/ 標注。文檔注釋只用于 Java 語言,通過/* */標注。文檔注釋可以通過 javadoc 工具從程序中自動抽取,從而生成相應的 HTML 格式的幫助文檔。代碼注釋用于對特定代碼的實現(xiàn)方式進行解釋說明,以幫助其他程序員閱讀代碼,是面向開發(fā)和維護此代碼的程序員的。而文檔注釋則是用于描述代碼的功能和接口規(guī)范,是面向使用此代碼提供的功能和接口的人員的,這些人
17、看到的只是一個接口,而非代碼的細節(jié)。3.1 代碼注釋代碼注釋主要分四種類型:常規(guī)注釋、單行注釋、行尾注釋和標注型注釋。 11 CMMI 受控文檔3.1.1 常規(guī)注釋常規(guī)注釋用于為文件、方法、數(shù)據(jù)結構和算法提供恰當?shù)拿枋龊妥⒔狻Mǔ?,常?guī)注釋中的描述文字多于一行。常規(guī)注釋必須與所解釋的代碼對齊,并位于相應代碼的頭部。常規(guī)注釋采用如下格式:/ * 從此行開始寫常規(guī)注釋* */3.1.2 單行注釋單行注釋為隨后的代碼和數(shù)據(jù)結構提供簡短的注解和說明。單行注釋可以采用/* */和/ 兩種形式單行注釋必須與隨后的代碼對齊,如:if (condition) /* Handle the condition *
18、/ 3.1.3 行尾注釋行尾注釋位于被注解代碼行的尾部,盡量使行尾注釋的位置看起來比較顯著,避免其隱藏在大量代碼中間。行尾注釋可以采用/* */和/ 兩種形式。同一代碼塊相關的行尾注釋應該盡可能對齊,如:if (a = 2) return TRUE;/* special case */ else return isPrime(a);/* works only for odd a */3.1.4 標注型注釋(1)對未完成的代碼添加/TODO : XXX 的注釋。(2)對發(fā)現(xiàn)了錯誤,但還未修改的代碼添加/BUG: XXX 的注釋。3.2 文檔注釋有關如何書寫文檔注釋以及利用 javadoc 生成幫助文檔的更多詳細內(nèi)容請參與 SUN 公司網(wǎng)站上 12 CMMI 受控文檔的如下鏈接:http:/ 有關 Java 編程的若干建議(1)可讀性、易理解性比展示編程技巧來得更重要。(2)盡管 Java 會對變量的缺省值進行初始化,但還是要養(yǎng)成在聲明局部變量時就進行初始化的習慣。(3)在嵌套的程序結構中,避免出現(xiàn)里層的變量聲明覆蓋外層變量聲明的情況,如:int count; myMethod () if (condition) int count;/ 避免出現(xiàn)這種情況 (4)使用存取方法來訪問類成員變量,而不是直接存取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度村委會林地承包及林木養(yǎng)護服務合同
- 2025年度網(wǎng)約車司機與共享出行公司簽約合同
- 二零二五年度農(nóng)村土地承包經(jīng)營權流轉與農(nóng)村電商合作合同
- 二零二五年度電子商務帳戶借用與消費者權益保護協(xié)議
- 二零二五年度商標代理機構服務協(xié)議
- 二零二五年度光伏屋頂租賃項目合作協(xié)議
- 二零二五年度網(wǎng)絡安全防護設備采購合同終止及數(shù)據(jù)安全協(xié)議
- 納米機械器件多物理場耦合-深度研究
- 高精度地理信息處理算法-深度研究
- 新型瀉下中成藥行業(yè)跨境出海戰(zhàn)略研究報告
- 脫口秀實戰(zhàn)指南(如何從零開始寫段子)
- 建筑工程掛靠協(xié)議模板
- 山東省濟寧市2025年高考模擬考試(一模)思想政治試題(含答案)
- 第十八屆“地球小博士”全國地理知識科普競賽題庫(附答案)
- 第五課 認識情緒 管理情緒
- 四年級數(shù)學下冊三角形及四邊形的角度計算培優(yōu)專項練習(含答案)
- SJG 82-2020 政府投資學校建筑室內(nèi)裝修材料空氣污染控制標準-高清現(xiàn)行
- 智慧園區(qū)平臺用戶操作手冊
- 精品市政道路施工測量方法及測量方案
- 小型手推清掃車畢業(yè)設計說明書課件
- 受拉鋼筋抗震錨固長度Lae
評論
0/150
提交評論