![軟件開發(fā)過程文檔 JAVA編碼規(guī)約_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/378bcfa9-f7ff-4d23-9140-7789eabc66c7/378bcfa9-f7ff-4d23-9140-7789eabc66c71.gif)
![軟件開發(fā)過程文檔 JAVA編碼規(guī)約_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/378bcfa9-f7ff-4d23-9140-7789eabc66c7/378bcfa9-f7ff-4d23-9140-7789eabc66c72.gif)
![軟件開發(fā)過程文檔 JAVA編碼規(guī)約_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/378bcfa9-f7ff-4d23-9140-7789eabc66c7/378bcfa9-f7ff-4d23-9140-7789eabc66c73.gif)
![軟件開發(fā)過程文檔 JAVA編碼規(guī)約_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/378bcfa9-f7ff-4d23-9140-7789eabc66c7/378bcfa9-f7ff-4d23-9140-7789eabc66c74.gif)
![軟件開發(fā)過程文檔 JAVA編碼規(guī)約_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/378bcfa9-f7ff-4d23-9140-7789eabc66c7/378bcfa9-f7ff-4d23-9140-7789eabc66c75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機源代碼編寫規(guī)范(JAVA編碼規(guī)范) 編 號:MPDK/ZY-15-2007修 改 號:0發(fā) 放 號:發(fā)布時間:2007-06-28實施時間:2007-06-28編 制:批 準:JAVA編程規(guī)范JAVA編程規(guī)范11目的12適用范圍13規(guī)范內(nèi)容11 目的定義這個規(guī)范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。(這些規(guī)范并不是一定要絕對遵守,但是一定要讓程序有良好的可讀性) 2 適用范圍適合公司所有的JAVA語言編程項目。3 規(guī)范內(nèi)容3.1 命名規(guī)定Package 的命名 Package 的名字應(yīng)該都是由一個小寫單詞組成。 Class 的命名
2、Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成 Class 變量的命名 變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。 Static Final 變量的命名 Static Final 變量的名字應(yīng)該都大寫,并且指出完整含義。 參數(shù)的命名 參數(shù)的名字必須和變量的命名規(guī)范一致。 數(shù)組的命名 數(shù)組應(yīng)該總是用下面的方式來命名: byte buffer; 而不是: byte buffer; 方法的參數(shù) 使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字: SetCounter(int size) this.size = size; Java 文件樣式 所有的
3、Java(*.java) 文件都必須遵守如下的樣式規(guī)則 版權(quán)信息 版權(quán)信息必須在 java 文件的開頭,比如: /* * Copyright ® 2000 Shanghai XXX Co. Ltd. * All right reserved. */ 其他不需要出現(xiàn)在 javadoc 的信息也可以包含在這里。 Package/Imports package 行要在 import 行之前,import 中標準的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個包中的不同子目錄,則應(yīng)該用 * 來處理。 package .stats; import ja
4、va.io.*; import java.util.Observable; import hotlava.util.Application; 這里 java.io.* 使用來代替InputStream and OutputStream 的。 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 se
5、t is complete */ 接下來是類定義,包含了在不同的行的 extends 和 implements public class CounterSet extends Observable implements Cloneable Class Fields 接下來是類的成員變量: /* * Packet counters */ protected int packets; public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。 存取方法 接下來是類變量的存取的方法。它只是簡單的用來將
6、類的變量賦值獲取值的話,可以簡單的寫在一行上。 /* * Get the counters * return an array containing the statistical data. This array has been * freshly allocated and can be modified by the caller. */ public int getPackets() return copyArray(packets, offset); public int getBytes() return copyArray(bytes, offset); public int
7、getPackets() return packets; public void setPackets(int packets) this.packets = packets; 其它的方法不要寫在一行上 構(gòu)造函數(shù) 接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面)。 訪問類型 ("public", "private" 等.) 和 任何 "static", "final" 或 "synchronized" 應(yīng)該在一行中,并且方法和參數(shù)另寫一行,這樣可以使方法和參數(shù)更易讀。 publi
8、c 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 CloneNotSUp
9、portedException: " + 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.
10、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 方法 無論如何,每一個類都應(yīng)該定義 toString 方法: public String toString() String retval = "
11、CounterSet: " for (int i = 0; i < data.length(); i+) retval += data.bytes.toString(); retval += data.packets.toString(); return retval; main 方法 如果main(String) 方法已經(jīng)定義了, 那么它應(yīng)該寫在類的底部. 代碼編寫格式 代碼樣式 代碼應(yīng)該用 unix 的格式,而不是 windows 的(比如:回車變成回車+換行) 文檔化 必須用 javadoc 來為類生成文檔。不僅因為它是標準,這也是被各種 java 編譯器都認可的
12、方法。使用 author 標記是不被推薦的,因為代碼不應(yīng)該是被個人擁有的。 縮進 縮進應(yīng)該是每行2個空格. 不要在源文件中保存Tab字符. 在使用不同的源代碼管理工具時Tab字符將因為用戶設(shè)置的不同而擴展為不同的寬度. 如果你使用 UltrEdit 作為你的 Java 源代碼編輯器的話,你可以通過如下操作來禁止保存Tab字符, 方法是通過 UltrEdit中先設(shè)定 Tab 使用的長度室2個空格,然后用 Format|Tabs to Spaces 菜單將 Tab 轉(zhuǎn)換為空格。 頁寬 頁寬應(yīng)該設(shè)置為80字符. 源代碼一般不會超過這個寬度, 并導(dǎo)致無法完整顯示, 但這一設(shè)置也可以靈活調(diào)整. 在任何情
13、況下, 超長的語句應(yīng)該在一個逗號或者一個操作符后折行. 一條語句折行后, 應(yīng)該比原來的語句再縮進2個字符. 對 中的語句應(yīng)該單獨作為一行. 例如, 下面的第1行是錯誤的, 第2行是正確的: if (i>0) i + ; / 錯誤, 和 在同一行 if (i>0) i + ; / 正確, 單獨作為一行 語句永遠單獨作為一行. 如果 語句應(yīng)該縮進到與其相對應(yīng)的 那一行相對齊的位置。 括號 左括號和后一個字符之間不應(yīng)該出現(xiàn)空格, 同樣, 右括號和前一個字符之間也不應(yīng)該出現(xiàn)空格. 下面的例子說明括號和空格的錯誤及正確使用: CallProc( AParameter ); /
14、 錯誤 CallProc(AParameter); / 正確 不要在語句中使用無意義的括號. 括號只應(yīng)該為達到某種目的而出現(xiàn)在源代碼中。下面的例子說明錯誤和正確的用法: if (I) = 42) / 錯誤 - 括號毫無意義 if (I = 42) or (J = 42) then / 正確 - 的確需要括號 程序編寫規(guī)范 exit() exit 除了在 main 中可以被調(diào)用外,其他的地方不應(yīng)該調(diào)用。因為這樣做不給任何代碼代碼機會來截獲退出。一個類似后臺服務(wù)地程序不應(yīng)該因為某一個庫模塊決定了要退出就退出。 異常 申明的錯誤應(yīng)該拋出一個RuntimeException或者派生的異常。 頂層的ma
15、in()函數(shù)應(yīng)該截獲所有的異常,并且打?。ɑ蛘哂涗浽谌罩局校┰谄聊簧?。 垃圾收集 JAVA使用成熟的后臺垃圾收集技術(shù)來代替引用計數(shù)。但是這樣會導(dǎo)致一個問題:你必須在使用完對象的實例以后進行清場工作。比如一個prel的程序員可能這么寫: . FileOutputStream fos = new FileOutputStream(projectFile); project.save(fos, "IDE Project File"); . 除非輸出流一出作用域就關(guān)閉,非引用計數(shù)的程序語言,比如JAVA,是不能自動完成變量的清場工作的。必須象下面一樣寫: FileOutputStr
16、eam fos = new FileOutputStream(projectFile); project.save(fos, "IDE Project File"); fos.close(); Clone 下面是一種有用的方法: implements Cloneable public Object clone() try ThisClass obj = (ThisClass)super.clone(); obj.field1 = (int)field1.clone(); obj.field2 = field2; return obj; catch(CloneNotSupportedException e) throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage(); final 類 絕對不要因為性能的原因?qū)㈩惗x為 final 的(除非程序的框架要求) 如果一個類還沒有準備好被繼承,最好在類文檔
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年大胖濾芯項目投資價值分析報告
- 地質(zhì)勘探和地震專用儀器項目風(fēng)險識別與評估綜合報告
- 氣水強力混合腔行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2025年多媒體信息管理系統(tǒng)行業(yè)深度研究分析報告
- 2025年度國際融資租賃合同樣本
- 2025年度會所安全監(jiān)控系統(tǒng)安裝合同樣本
- 2025年度養(yǎng)老服務(wù)機構(gòu)租賃合同范本(含配套設(shè)施)
- 2025年度產(chǎn)品發(fā)布會現(xiàn)場合影拍攝與直播合同
- 2025年度城市軌道交通施工安全責(zé)任合同
- 2025年度戶外廣告廣告效果跟蹤與優(yōu)化合同
- 《住院患者身體約束的護理》團體標準解讀課件
- 中國心力衰竭診斷與治療指南解讀
- 醫(yī)院信息科考核內(nèi)容標準細則
- 商務(wù)提成辦法
- 《統(tǒng)計學(xué)》完整袁衛(wèi)-賈俊平課件
- FZ/T 25001-1992工業(yè)用毛氈
- 電商部售后客服績效考核表
- 小提琴協(xié)奏曲《梁?!纷V
- 人教版高中化學(xué)必修一第一章《物質(zhì)及其變化》教學(xué)課件
- 復(fù)工復(fù)產(chǎn)工作方案范本【復(fù)產(chǎn)復(fù)工安全工作方案】
- HyperMesh100基礎(chǔ)培訓(xùn)教程
評論
0/150
提交評論