![Java程序的編碼規(guī)范_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/4e45fd22-8bc3-40c5-a400-7885486b76a3/4e45fd22-8bc3-40c5-a400-7885486b76a31.gif)
![Java程序的編碼規(guī)范_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/4e45fd22-8bc3-40c5-a400-7885486b76a3/4e45fd22-8bc3-40c5-a400-7885486b76a32.gif)
![Java程序的編碼規(guī)范_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/4e45fd22-8bc3-40c5-a400-7885486b76a3/4e45fd22-8bc3-40c5-a400-7885486b76a33.gif)
![Java程序的編碼規(guī)范_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/4e45fd22-8bc3-40c5-a400-7885486b76a3/4e45fd22-8bc3-40c5-a400-7885486b76a34.gif)
![Java程序的編碼規(guī)范_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/4e45fd22-8bc3-40c5-a400-7885486b76a3/4e45fd22-8bc3-40c5-a400-7885486b76a35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java程序的編碼規(guī)范所有的程序開發(fā)手冊都包含了各種規(guī)則。一些習(xí)慣自由程序人員可能對這些規(guī)則很不適應(yīng),但是在多個開發(fā)人員共同寫作的情況下,這些規(guī)則是必需的。這不僅僅是為了開發(fā)效率來考慮,而且也是為了后期維護考慮。一、命名規(guī)范定義這個規(guī)范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。(這些規(guī)范并不是一定要絕對遵守,但是一定要讓程序有良好的可讀性)> Package 的命名Package 的名字應(yīng)該都是由一個小寫單詞組成。> Class 的命名Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成。> Class 變量的命名
2、變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。> Static Final 變量的命名Static Final 變量的名字應(yīng)該都大寫,并且指出完整含義。> 參數(shù)的命名參數(shù)的名字必須和變量的命名規(guī)范一致。> 數(shù)組的命名數(shù)組應(yīng)該總是用下面的方式來命名:1. byte buffer; 而不是:1. byte buffer; > 方法的參數(shù)使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字:1. SetCounter(int size) 2. 3. this.size = size;4. 二、Java文件樣式所有的 Java(*.java) 文件都必
3、須遵守如下的樣式規(guī)則:> 版權(quán)信息版權(quán)信息必須在java文件的開頭,比如:1. /* 2. * Copyright ?2000 Shanghai XXX Co. Ltd. 3. * All right reserved. 4. */ 其他不需要出現(xiàn)在javadoc的信息也可以包含在這里。> Package/Importspackage 行要在import行之前,import中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順序排列。如果import行中包含了同一個包中的不同子目錄,則應(yīng)該用*來處理。1. package .stats; 2. import java.io.*; 3. im
4、port java.util.Observable; 4. import hotlava.util.Application; 這里 java.io.* 使用來代替InputStream and OutputStream的。> Class接下來的是類的注釋,一般是用來解釋類的。1. /* 2. * A class representing a set of packet and byte counters 3. * It is observable to allow it to be watched, but only 4. * reports changes when the curre
5、nt set is complete 5. */ 6. 接下來是類定義,包含了在不同的行的 extends 和 implements :1. public class CounterSet 2. extends Observable 3. implements Cloneable > Class Fields接下來是類的成員變量:1. /* 2. * Packet counters 3. */ 4. protected int packets; 5. public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量如果名字含義明確
6、的話,可以沒有注釋。> 存取方法接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。1. /* 2. * Get the counters 3. * return an array containing the statistical data. This array has been 4. * freshly allocated and can be modified by the caller. 5. */ 6. 7. public int getPackets() return copyArray(packets, offset); 8. p
7、ublic int getBytes() return copyArray(bytes, offset); 9. public int getPackets() return packets; 10. 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ù)另寫一行,這樣可
8、以使方法和參數(shù)更易讀。1. public 2. CounterSet(int size) 3. this.size = size; 4. > 克隆方法如果這個類是可以被克隆的,那么下一步就是clone方法:1. public 2. Object clone() 3. 4. try 5. CounterSet obj = (CounterSet)super.clone(); 6. obj.packets = (int)packets.clone(); 7. obj.size = size; 8. return obj; 9. catch(CloneNotSupportedException
9、 e) 10. throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage(); 11. 12. > 類方法下面開始寫類的方法:1. /* 2. * Set the packet counters 3. * (such as when restoring from a database) 4. */ 5. 6. protected final void setArray(int r1, int r2, int r3, int r4)throws IllegalArgu
10、mentException 7. 8. 9. / 10. / Ensure the arrays are of equal size 11. / 12. if (r1.length != r2.length | r1.length != r3.length | r1.length != r4.length)13. throw new IllegalArgumentException("Arrays must be of the same size"); 14. System.arraycopy(r1, 0, r3, 0, r1.length); 15. System.arr
11、aycopy(r2, 0, r4, 0, r1.length); 16. > toString 方法無論如何,每一個類都應(yīng)該定義toString 方法:1. public String toString() 2. 3. String retval = "CounterSet: " 4. for (int i = 0; i<data.length();i+) 5. retval += data.bytes.toString(); 6. retval += data.packets.toString(); 7. 8. return retval; 9. 10. &g
12、t; main 方法如果main(String) 方法已經(jīng)定義了,那么它應(yīng)該寫在類的底部。三、代碼編寫格式> 代碼樣式代碼應(yīng)該用 unix 的格式,而不是 windows 的(比如:回車變成回車+換行) 。> 文檔化必須用 javadoc 來為類生成文檔。不僅因為它是標(biāo)準(zhǔn),這也是被各種 java 編譯器都認可的方法。使用 author 標(biāo)記是不被推薦的,因為代碼不應(yīng)該是被個人擁有的。> 縮進縮進應(yīng)該是每行2個空格。不要在源文件中保存Tab字符。在使用不同的源代碼管理工具時Tab字符將因為用戶設(shè)置的不同而擴展為不同的寬度。如果你使用 UltrEdit 作為你的 Java 源代碼
13、編輯器的話,你可以通過如下操作來禁止保存Tab字符,方法是通過 UltrEdit中先設(shè)定 Tab 使用的長度室2個空格,然后用 Format|Tabs to Spaces 菜單將 Tab 轉(zhuǎn)換為空格。> 頁寬頁寬應(yīng)該設(shè)置為80字符。源代碼一般不會超過這個寬度,并導(dǎo)致無法完整顯示,但這一設(shè)置也可以靈活調(diào)整。在任何情況下,超長的語句應(yīng)該在一個逗號或者一個操作符后折行。一條語句折行后,應(yīng)該比原來的語句再縮進2個字符。> 對 中的語句應(yīng)該單獨作為一行。例如,下面的第1行是錯誤的第2行是正確的:1. if (i>0) i + ; / 錯誤, 和 在同一行 2. if (i>0)
14、3. i + 4. ; / 正確, 單獨作為一行 5. 語句永遠單獨作為一行。如果 語句應(yīng)該縮進到與其相對應(yīng)的 那一行相對齊的位置。> 括號左括號和后一個字符之間不應(yīng)該出現(xiàn)空格,同樣,右括號和前一個字符之間也不應(yīng)該出現(xiàn)空格。下面的例子說明括號和空格的錯誤及正確使用:1. CallProc( AParameter ); / 錯誤 2. CallProc(AParameter); / 正確 不要在語句中使用無意義的括號。括號只應(yīng)該為達到某種目的而出現(xiàn)在源代碼中。下面的例子說明錯誤和正確的用法:1. if (I) = 42) / 錯誤 - 括號毫無意義 2. if (I = 42) or (J
15、 = 42) then / 正確 - 的確需要括號 四、程序編寫規(guī)范> exit()exit除了在main中可以被調(diào)用外,其他的地方不應(yīng)該調(diào)用。因為這樣做不給任何代碼代碼機會來截獲退出。一個類似后臺服務(wù)地程序不應(yīng)該因為某一個庫模塊決定了要退出就退出。> 異常申明的錯誤應(yīng)該拋出一個RuntimeException或者派生的異常。頂層的main()函數(shù)應(yīng)該截獲所有的異常,并且打印(或者記錄在日志中)在屏幕上。> 垃圾收集JAVA使用成熟的后臺垃圾收集技術(shù)來代替引用計數(shù)。但是這樣會導(dǎo)致一個問題:你必須在使用完對象的實例以后進行清場工作。比如一個prel的程序員可能這么寫:1. . 2. 3. FileOutputStream fos = new FileOutputStream(projectFile); 4. project.save(fos, "IDE Project File"); 5. 6. . 除非輸出流一出作用域就關(guān)閉,非引用計數(shù)的程序語
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球電腦鎮(zhèn)痛泵行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球電動汽車高壓直流繼電器行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國IO-Link信號燈行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國堆棧式CMOS圖像傳感器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 經(jīng)典居間合同
- 農(nóng)機作業(yè)服務(wù)合同
- 環(huán)保設(shè)施運營管理合同
- 熱長期供貨合同
- 安全監(jiān)控系統(tǒng)集成服務(wù)合同
- 政府與企業(yè)合作協(xié)議
- 普通話培訓(xùn)班合作協(xié)議書
- 《西方思想經(jīng)典》課件
- 中醫(yī)診療設(shè)備種類目錄
- 戰(zhàn)略管理與倫理
- 如何構(gòu)建高效課堂課件
- 徐金桂行政法與行政訴訟法新講義
- 瀝青拌合設(shè)備結(jié)構(gòu)認知
- GB/T 13234-2018用能單位節(jié)能量計算方法
- (課件)肝性腦病
- 北師大版五年級上冊數(shù)學(xué)教學(xué)課件第5課時 人民幣兌換
- 工程回訪記錄單
評論
0/150
提交評論