




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、JAVA編程規(guī)范定義這個規(guī)范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。(這些規(guī)范并不是一定要絕對遵守,但是一定要讓程序有良好的可讀性) Package的命名 Package的名字應該都是由一個小寫單詞組成。 Class的命名 Class的名字必須由大寫字母開頭而其他字母都小寫的單詞組成 Class變量的命名 變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。 StaticFinal變量的命名 StaticFinal變量的名字應該都大寫,并且指出完整含義。 參數(shù)的命名 參數(shù)的名字必須和變量的命名規(guī)范一致。 數(shù)組的命名 數(shù)組應該總是用下
2、面的方式來命名: bytebuffer; 而不是: bytebuffer; 方法的參數(shù) 使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字: SetCounter(intsize) this.size=size; Java文件樣式 所有的Java(*.java)文件都必須遵守如下的樣式規(guī)則 版權(quán)信息 版權(quán)信息必須在java文件的開頭,比如: /* *Copyright®2000ShanghaiXXXCo.Ltd. *Allrightreserved. */ 其他不需要出現(xiàn)在javadoc的信息也可以包含在這里。 Package/Imports package行要在impo
3、rt行之前,import中標準的包名要在本地的包名之前,而且按照字母順序排列。如果import行中包含了同一個包中的不同子目錄,則應該用*來處理。 .stats; importjava.io.*; importjava.util.Observable; importhotlava.util.Application; 這里java.io.*使用來代替InputStreamandOutputStream的。 Class 接下來的是類的注釋,一般是用來解釋類的。 /* *Aclassrepresentingasetofpacketandbytecounters *Itisobservabletoal
4、lowittobewatched,butonly *reportschangeswhenthecurrentsetiscomplete */ 接下來是類定義,包含了在不同的行的extends和implements publicclassCounterSet extendsObservable implementsCloneable ClassFields 接下來是類的成員變量: /* *Packetcounters */ protectedintpackets; public的成員變量必須生成文檔(JavaDoc)。proceted、private和package定義的成員變量如果名字含義明確
5、的話,可以沒有注釋。 存取方法 接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。 /* *Getthecounters *returnanarraycontainingthestatisticaldata.Thisarrayhasbeen *freshlyallocatedandcanbemodifiedbythecaller. */ publicintgetPackets()returncopyArray(packets,offset); publicintgetBytes()returncopyArray(bytes,offset); publi
6、cintgetPackets()returnpackets; publicvoidsetPackets(intpackets)this.packets=packets; 其它的方法不要寫在一行上 構(gòu)造函數(shù) 接下來是構(gòu)造函數(shù),它應該用遞增的方式寫(比如:參數(shù)多的寫在后面)。 訪問類型(public,private等.)和任何static,final或synchronized應該在一行中,并且方法和參數(shù)另寫一行,這樣可以使方法和參數(shù)更易讀。 public CounterSet(intsize) this.size=size; 克隆方法 如果這個類是可以被克隆的,那么下一步就是clone方法: pu
7、blic Objectclone() try CounterSetobj=(CounterSet)super.clone(); obj.packets=(int)packets.clone(); obj.size=size; returnobj; catch(CloneNotSupportedExceptione) thrownewInternalError(UnexpectedCloneNotSUpportedException:+e.getMessage(); 類方法 下面開始寫類的方法: /* *Setthepacketcounters *(suchaswhenrestoringfrom
8、adatabase) */ protectedfinal voidsetArray(intr1,intr2,intr3,intr4) throwsIllegalArgumentException / /Ensurethearraysareofequalsize / if(r1.length!=r2.length|r1.length!=r3.length|r1.length!=r4.length) thrownewIllegalArgumentException(Arraysmustbeofthesamesize); System.arraycopy(r1,0,r3,0,r1.length);
9、System.arraycopy(r2,0,r4,0,r1.length); toString方法 無論如何,每一個類都應該定義toString方法: public StringtoString() Stringretval=CounterSet:; for(inti=0;i0)i+;/錯誤,和在同一行 if(i0) i+ ;/正確,單獨作為一行 語句永遠單獨作為一行. 如果語句應該縮進到與其相對應的那一行相對齊的位置。 括號 左括號和后一個字符之間不應該出現(xiàn)空格,同樣,右括號和前一個字符之間也不應該出現(xiàn)空格.下面的例子說明括號和空格的錯誤及正確使用: CallProc(AParameter)
10、;/錯誤 CallProc(AParameter);/正確 不要在語句中使用無意義的括號.括號只應該為達到某種目的而出現(xiàn)在源代碼中。下面的例子說明錯誤和正確的用法: if(I)=42)/錯誤-括號毫無意義 if(I=42)or(J=42)then/正確-的確需要括號 程序編寫規(guī)范 exit() exit除了在main中可以被調(diào)用外,其他的地方不應該調(diào)用。因為這樣做不給任何代碼代碼機會來截獲退出。一個類似后臺服務地程序不應該因為某一個庫模塊決定了要退出就退出。 異常 申明的錯誤應該拋出一個RuntimeException或者派生的異常。 頂層的main()函數(shù)應該截獲所有的異常,并且打印(或者記
11、錄在日志中)在屏幕上。 垃圾收集 JAVA使用成熟的后臺垃圾收集技術(shù)來代替引用計數(shù)。但是這樣會導致一個問題:你必須在使用完對象的實例以后進行清場工作。比如一個prel的程序員可能這么寫: . FileOutputStreamfos=newFileOutputStream(projectFile); project.save(fos,IDEProjectFile); . 除非輸出流一出作用域就關(guān)閉,非引用計數(shù)的程序語言,比如JAVA,是不能自動完成變量的清場工作的。必須象下面一樣寫: FileOutputStreamfos=newFileOutputStream(projectFile); pr
12、oject.save(fos,IDEProjectFile); fos.close(); Clone 下面是一種有用的方法: implementsCloneable public Objectclone() try ThisClassobj=(ThisClass)super.clone(); obj.field1=(int)field1.clone(); obj.field2=field2; returnobj; catch(CloneNotSupportedExceptione) thrownewInternalError(UnexpectedCloneNotSUpportedException:+e.getMessage(); final類 絕對不要因為性能的原因?qū)㈩惗x為final的(除非程序的框架要求) 如果一個類還沒有準備好被繼承,最好在類文檔中注明,而不要將她定義為final的。這是因為沒有人可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣東廣州花都城投大地建設咨詢有限公司招聘項目用工人員及擬錄用人員筆試參考題庫附帶答案詳解
- 2024年甘肅省新華書店有限責任公司公開招聘工作人員80人筆試參考題庫附帶答案詳解
- 2025年吉林城市職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫附答案
- 2024年度四川寶興縣發(fā)展投資(集團)有限責任公司公開招聘4人筆試參考題庫附帶答案詳解
- 2024年北京北控城市發(fā)展集團有限公司公開招聘法律合規(guī)部負責人1人筆試參考題庫附帶答案詳解
- 13、紀念白求恩 教學設計-2024-2025學年統(tǒng)編版語文七年級上冊2024
- 2024年中國能源建設集團遼寧電力勘測設計院有限公司社會招聘筆試參考題庫附帶答案詳解
- 2落花生(教學設計)2024-2025學年統(tǒng)編版語文五年級上冊
- 第二章 有理數(shù)及其運算第5節(jié)有理數(shù)的混合運算(第1課時)教學設計2024-2025學年北師大版數(shù)學七年級上冊
- 2025年湖北交通職業(yè)技術(shù)學院單招職業(yè)技能測試題庫必考題
- 《玩偶之家(節(jié)選)》課件
- 化工生產(chǎn)設備安全檢查表
- 安徽2024年安徽醫(yī)科大學招聘管理崗和專業(yè)技術(shù)輔助崗(第二批)筆試歷年參考題庫解題思路附帶答案詳解
- 房建監(jiān)理實施細則
- 國家科學技術(shù)獎勵提名書
- 一年級下期開學第一課
- 舞臺燈光設計與光影藝術(shù)考核試卷
- 第10輯:句子表達效果(原句vs改句)解題指導-2023年高考語文一輪復習修辭手法與句子表達效果專練
- 2024年輔警招考時事政治考題及答案(100題)
- 2024年中考數(shù)學《二次函數(shù)的實際應用》真題含解析版
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
評論
0/150
提交評論