版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1/1編碼書寫規(guī)范-Java目錄1.命名約定11.1.一般概念1.2.示范112.注釋約定32.1.一般概念2.2.示范2.3.注釋哪些部分4453.文件樣式約定53.1.JAVA(*.JAVA)3.1.1.版權(quán)信息3.1.2.PACKAGE/IMPORTS5553.1.3.CLASS63.1.4.CLASSFIELDS63.1.5.存取方法(類的設(shè)置與獲取成員函數(shù))3.1.6.構(gòu)造函數(shù)3.1.7.克隆方法3.1.8.類方法(類的普通成員函數(shù))3.1.9.TOSTRING方法3.1.10.MAIN方法3.2.JAVASERVERPAGE(*.JSP)3.2.1.版本信息3.2.2.TAG7778889993.2.3.定義3.2.4.值輸出3.2.5.嵌入代碼段1010104.其它代碼書寫風(fēng)格約定114.1.文檔化4.2.縮進(jìn)4.3.頁寬4.4.{}對(duì)4.5.括號(hào)4.6.運(yùn)算符4.7.參數(shù)之間111111111112124.8.JSP文件命名4.9.SERVLET類命名12125.附件125.1.使用方法13-1-1.命名約定除了以下幾個(gè)特例之外,命名時(shí)應(yīng)始終采用完整的英文描述符。
此外,一般應(yīng)采用小寫字母,但類名、接口名以及任何非初始單詞的第一個(gè)字母要大寫。
1.1.一般概念盡量使用完整的英文描述符采用適用于相關(guān)領(lǐng)域的術(shù)語采用大小寫混合使名字可讀盡量少用縮寫,但如果用了,要明智地使用,且在整個(gè)工程中統(tǒng)一避免使用長(zhǎng)的名字(盡量小于25個(gè)字母)避免使用類似的名字,或者僅僅是大小寫不同的名字避免使用下劃線(除靜態(tài)常量等)1.2.示范包(Package)采用完整的英文描述符,應(yīng)該都是由小寫字母組成,格式為com.dcosft.*。
如:
com.dcsoft.ework.workflowcom.dcsoft.commonscom.dcsoft.utility類(Class)采用完整的英文描述符,所有單詞的第一個(gè)字母大寫,在上下文語境允許的情況下,可以使用縮略詞,但必須保證整個(gè)開發(fā)小組的一致性,比如:
number可縮寫為num。
如:
接口(Interface)采用完整的英文描述符說明接口封裝,所有單詞的第一個(gè)字母大寫。
在接口名稱的最前面使用大寫的I表明這是一個(gè)接口。
習(xí)慣上,CustomerSavingsAccount-2-名字后面加上后綴able,ible或者er,但這不是必需的。
如:
組件/部件(Component)使用完整的英文描述來說明組件的用途,前端加上組件類型。
如:
異常(Exception)采用異常類型的各單詞首字母表示異常。
如:
字段/屬性字段采用完整的英文描述,第一個(gè)字母小寫,任何中間單詞的首字母大寫。
實(shí)參/參數(shù)同字段/屬性的命名規(guī)則局部變量同字段/屬性的命名規(guī)則獲取成員函數(shù)被訪問字段名的前面加上前綴get。
布爾型的獲取成員函數(shù)所有的布爾型獲取函數(shù)必須用單詞is做前綴。
設(shè)置成員函數(shù)被訪問字段名的前面加上前綴set。
IContactableIPrompterbtnOKlstCustomermenuFileExcpetioneIOExceptionioefirstNamelastNamepublicvoidsetFirstName(StringfirstName){this.firstName=firstName;}getFirstName()getLastName()isPersistent()isString()-3-普通成員函數(shù)采用完整的英文描述說明成員函數(shù)功能,第一個(gè)單詞盡可能采用一個(gè)生動(dòng)的動(dòng)詞,第一個(gè)字母小寫。
靜態(tài)常量字段(staticfinal)全部采用大寫字母,單詞之間用下劃線分隔。
循環(huán)計(jì)數(shù)器通常采用字母i,j,k,m,n或者counter都可以接受。
數(shù)組數(shù)組數(shù)組應(yīng)該總是用下面的方式來命名:
objectType[]variant,不得使用objectTypevariant[]方式。
對(duì)象實(shí)例同組件/部件2.注釋約定一個(gè)很好的可遵循的有關(guān)注釋的經(jīng)驗(yàn)法則是:
問問你自己,你如果從未見過這段代碼,要在合理的時(shí)間內(nèi)有效地明白這段代碼,你需要哪些信息。
setFirstName()setLastName()setWarpSpeed()openFile()addAccount()MIN_BALANCE,DEFAULT_DATEi,j,km,n,counterint[]arrInt;;String[]args;byte[]arrBuffer;StringBuffersbContent;-4-2.1.一般概念注釋應(yīng)該增加代碼的清晰度保持注釋的簡(jiǎn)潔在寫代碼之前寫注釋注釋出為什么做了一些事,而不僅僅是做了什么2.2.示范文檔注釋在緊靠接口、類、成員函數(shù)和字段聲明的前面注釋它們。
C語言風(fēng)格采用C語言風(fēng)格的注釋去掉不再使用但你仍想保留的代碼。
仍想保留是因?yàn)橛脩羧f一會(huì)改變想法,或者在調(diào)試過程中想讓它暫時(shí)失效。
單行在成員函數(shù)內(nèi)采用單行注釋,來說明業(yè)務(wù)邏輯、代碼段和暫時(shí)變量的聲明。
注釋符//后必須緊跟一個(gè)空格,然后才是注釋信息。
即約定主要的說明性注釋使用文檔注釋;C風(fēng)格注釋只用來標(biāo)注過期不用的代碼;單行注釋用來標(biāo)注一些簡(jiǎn)單卻容易混淆的邏輯,比較長(zhǎng)的單獨(dú)作為一行,較簡(jiǎn)潔的可以放在代碼行尾。
/**客戶:
客戶是我們將服務(wù)和產(chǎn)品賣給的人或機(jī)構(gòu)。
*/Stringcustomer;/*這部分代碼因?yàn)橐驯凰暗拇a取代,由B.Gustafsson,*于1999年6月4日注釋掉。
如果兩年之后還未使用,將*其刪除。
...*(源代碼)*///遵照Sarek的規(guī)定,給所有//超過$1000的發(fā)貨單//打5%的折扣。
讓利活//動(dòng)于1995年2月開始.-5-2.3.注釋哪些部分類:
類的目的、即類所完成的功能,注釋出采用的不變量。
接口:
設(shè)置接口的目的、它應(yīng)如何被使用以及如何不被使用。
成員函數(shù)注釋:
對(duì)于設(shè)置與獲取成員函數(shù),在成員變量已有說明的情況下,可以不加注釋;普通成員函數(shù)要求說明完成什么功能,參數(shù)含義是什么返回什么;普通成員函數(shù)內(nèi)部注釋:
控制結(jié)構(gòu),代碼做了些什么以及為什么這樣做,處理順序等。
實(shí)參/參數(shù):
參數(shù)含義、及其它任何約束或前提條件字段/屬性:
字段描述局部變量:
無特別意義的情況下不加注釋3.文件樣式約定3.1.Java(*.java)所有的Java(*.java)文件都必須遵守如下的樣式規(guī)則:
3.1.1.版權(quán)信息版權(quán)信息必須在java文件的開頭,比如:
其他不需要出現(xiàn)在javadoc的信息也可以包含在這里。
3.1.2.Package/Importspackage行要在import行之前,import中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順序排列。
如果import行中包含了同一個(gè)包中的不同子目錄,則應(yīng)該用*來處理。
/***Copyright2005ShandongSuccessSoftCo.Ltd.*Allrightreserved.*/-6-這里java.io.*是用來代替InputStreamandOutputStream的。
3.1.3.Class接下來的是類的注釋,一般是用來解釋類的,包含版本信息。
接下來是類定義,包含了在不同的行的extends和implements3.1.4.ClassFields接下來是類的成員變量:
public的成員變量必須生成文檔(JavaDoc)。
proceted、private和package定義的成員變量如果名字含義明確的話,可以沒有注釋。
packagehotlava.net.stats;importjava.io.*;importjava.util.Observable;importhotlava.util.Application;/***pTitle:文件名稱/p*pDescription:類內(nèi)容的簡(jiǎn)介/p*pb更新記錄:
/b*格式:[更新日期][修改的版本][操作人]內(nèi)容br*[2005-06-28][1.0][張三]完善create方法。
br*/p*pCopyright:Copyright(c)2005/p*pCompany:山東軟件有限公司/p*@version:1.1*/publicclassCounterSetextendsObservableimplementsCloneable{}/***Packetcounters*/protectedint[]packets;-7-3.1.5.存取方法(類的設(shè)置與獲取成員函數(shù))接下來是類變量的存取的方法。
它只是簡(jiǎn)單的用來將類的變量賦值獲取值的話,可以簡(jiǎn)單的寫在一行上,如類的成員變量已經(jīng)有注釋,類變量的存取方法可以沒有注釋。
要求說明的是,對(duì)于集合,加入成員函數(shù)來插入和刪除項(xiàng);另其它的方法不要寫在一行上。
3.1.6.構(gòu)造函數(shù)接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:
參數(shù)多的寫在后面)。
3.1.7.克隆方法如果這個(gè)類是可以被克隆的,那么下一步就是clone方法:
publicint[]getPackets(){returnthis.packets;}publicvoidsetPackets(int[]packets){this.packets=packets;}publicCounterSet(){this.size=100;}publicCounterSet(intsize){this.size=size;}-8-3.1.8.類方法(類的普通成員函數(shù))下面開始寫類的方法:
3.1.9.toString方法一般情況下,每一個(gè)類都應(yīng)該定義toString方法:
3.1.10.main方法普通類,考慮置入一個(gè)main()方法,其中包含用于測(cè)試那個(gè)類的代碼,如果包含了main()方法,那么它應(yīng)該寫在類的底部。
publicObjectclone(){try{}catch(CloneNotSupportedExceptione){}}/***Setthepacketcounters*paramr1-*paramr2-**/protectedfinalvoidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)throwsIllegalArgumentException{//Ensurethearraysareofequalsize}publicStringtoString(){}-9-3.2.JavaServerPage(*.jsp)所有的Jsp(*.jsp)文件都必須遵守如下的樣式規(guī)則:
3.2.1.版本信息文件開頭應(yīng)有一個(gè)文件的版本注釋,格式為3.2.2.tag關(guān)鍵tag的書寫順序?yàn)樽⒁馐马?xiàng)使用國(guó)標(biāo)擴(kuò)展字符集(GBK)作為content的charsetcontentType在被包含的文件一定不能寫,而其他文件一定要寫建議用以下兩種格式:
%--Copyright:
Copyright2005--%%--Company:
山東軟件有限公司--%%功能簡(jiǎn)介:
對(duì)這一個(gè)實(shí)現(xiàn)的功能作一個(gè)簡(jiǎn)介。
傳入?yún)?shù):
列出該頁接收的所有參數(shù)傳入?yún)?shù)的說明,以及沒有接收到參數(shù)的處理方式如果有session,列出所有的session,然后說明session,以及session的影響%%--Version:
版本號(hào)--%%--[更新日期][修改的版本][操作人]內(nèi)容--%%@pageimport=%jsp:useBeanid=scope=class=/%@includefile=%%@pageContentType=text/html;charset=GBK%-10-tag一律用小寫,屬性的值用雙引號(hào)引起來。
出錯(cuò)信息定向到公用的出錯(cuò)頁面3.2.3.定義在JSP中定義方法或類變量時(shí)使用單獨(dú)行%!開頭,單獨(dú)行%結(jié)尾,注釋參見2,代碼塊縮進(jìn)參見4.2。
3.2.4.值輸出輸出值時(shí)使用%=value%。
3.2.5.嵌入代碼段使用單獨(dú)行%開頭,單獨(dú)行%結(jié)尾,注釋參見2,代碼塊縮進(jìn)參見4.2。
%@pageimport=java.util.*,java.sql.*%%--多個(gè)import之間用逗號(hào)隔開,結(jié)尾不要分號(hào)--%%@pageimport=java.util.*%%@pageimport=java.sql.*%%--所有的import均分開寫--%%!/**userId*/privateStringuserId;/***isValidData*/privatebooleanisValidData(){}%%for(inti=0;i10;i++){out.println(i);}%-11-4.其它代碼書寫風(fēng)格約定4.1.文檔化必須用javadoc來為類生成文檔。
不僅因?yàn)樗菢?biāo)準(zhǔn),這也是被各種java編譯器都認(rèn)可的方法。
使用@author標(biāo)記是不被推薦的,因?yàn)榇a不應(yīng)該是被個(gè)人擁有的。
4.2.縮進(jìn)縮進(jìn)應(yīng)該是每行3個(gè)空格。
不要在源文件中保存Tab字符,在使用不同的源代碼管理工具時(shí)Tab字符將因?yàn)橛脩粼O(shè)置的不同而擴(kuò)展為不同的寬度。
4.3.頁寬頁寬應(yīng)該設(shè)置為80字符。
源代碼一般不會(huì)超過這個(gè)寬度,并導(dǎo)致無法完整顯示,但這一設(shè)置也可以靈活調(diào)整。
在任何情況下,超長(zhǎng)的語句應(yīng)該在一個(gè)逗號(hào)或者一個(gè)操作符后折行。
一條語句折行后,應(yīng)該比原來的語句再縮進(jìn)3個(gè)字符。
4.4.{}對(duì){}中的語句應(yīng)該單獨(dú)作為一行。
例如:
4.5.括號(hào)左括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格;同樣,右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格。
例如:
if(i0){i++;}CallProc(AParameter);//不符合規(guī)范CallProc(AParameter);//符合規(guī)范-12-不要在語句中使用無意義的括號(hào),括號(hào)只應(yīng)該為達(dá)到某種目的而出現(xiàn)在源代碼中。
4.6.運(yùn)算符每個(gè)運(yùn)算符與兩邊的字符之間都應(yīng)該有一個(gè)空格。
4.7.參數(shù)之間多個(gè)參數(shù)之間的,應(yīng)緊跟前面的參數(shù),與后面的參數(shù)之間有一個(gè)空格。
4.8.JSP文件命名采用完整的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)員業(yè)務(wù)驗(yàn)證復(fù)習(xí)測(cè)試卷附答案
- 新教材同步系列2024春高中地理熱點(diǎn)微專題2自然資源與國(guó)家安全課件湘教版選擇性必修3
- 2024屆湖南明德中學(xué)高三1月模擬調(diào)研數(shù)學(xué)試題
- 教科版二年級(jí)上冊(cè)科學(xué)期末試卷及答案
- 企業(yè)調(diào)查科科長(zhǎng)競(jìng)爭(zhēng)演講稿
- 女兒店面開業(yè)活動(dòng)方案
- 我會(huì)用剪刀課件
- 常見的小蒼蘭病蟲害防治
- 大班拼音教育課件
- 關(guān)于服務(wù)工作心得體會(huì)五篇
- 2024年中國(guó)誠(chéng)通控股集團(tuán)限公司總部公開招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 2024年7月全國(guó)自考離散數(shù)學(xué)試題試卷真題及答案
- 2024新教科版一年級(jí)上冊(cè)第二單元我們自己第2課發(fā)現(xiàn)生長(zhǎng)教學(xué)課件含微課視頻
- 國(guó)家保安員資格考試試卷題庫(kù)大全【附答案】
- 2024年新大象版六年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)(背誦版)
- 2024浙江金華市水務(wù)集團(tuán)限公司招聘46人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 2024年長(zhǎng)春經(jīng)濟(jì)技術(shù)開發(fā)區(qū)招聘工作人員歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 塔吊信號(hào)工聘用合同協(xié)議書(2024版)
- 預(yù)防違法犯罪 從杜絕不良行為做起
- 小學(xué)智慧校園建設(shè)工作計(jì)劃
- 2024-2034年全球及中國(guó)慢性疼痛治療行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資發(fā)展研究報(bào)告
評(píng)論
0/150
提交評(píng)論