




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、如有你有幫助,請(qǐng)購買下載,謝謝!如有你有幫助,請(qǐng)購買下載,謝謝!頁P(yáng)AGE14頁如有你有幫助,請(qǐng)購買下載,謝謝!頁網(wǎng)道Java編程規(guī)范一、目的:本規(guī)范立足于所收集到的各種Java編碼標(biāo)準(zhǔn)、規(guī)范、慣例以及指導(dǎo)性原則,根據(jù)本公司的具體情況進(jìn)行調(diào)整后制定而成,其目的是便于軟件代碼易于理解、維護(hù)以及重用。更為重要的事,遵循這些標(biāo)準(zhǔn)可以顯著地提高軟件生產(chǎn)率。記住:編碼是具有集體性質(zhì)的,其易讀性、易維護(hù)性是編碼優(yōu)良的重要評(píng)判標(biāo)準(zhǔn)。二、原則盡量添加注釋。為人編碼,而不是為電腦編碼。先做設(shè)計(jì),然后編碼。保持代碼簡單。從小到大編制。切忌一上手就編制大規(guī)模代碼。三、基本規(guī)范1注釋在Java中,存在三種注釋,分別為
2、:文檔注釋:/*/;多行注釋:/*/;單行注釋:/。這三種注釋將用于不同的位置。1.1 原則盡可能進(jìn)行代碼注釋。力求注釋簡潔、清楚、易懂。先寫注釋,再寫代碼除了注釋代碼功能外,更為重要的是注釋出為什么要這樣做,便于別人知道你寫這段代碼的目的。1.2 注釋規(guī)范注釋類型用途例子備注文檔注釋(/*/)類(Class)接口(Interface)成員函數(shù)(Member Function)屬性(Attribute, Field)的聲明前面。/*Customer A customer is any person or organization that we sell services and produc
3、ts to.author S.W. Ambler*/由于Javadoc能文檔注釋中的某些特定元素,故文檔注釋通常用于書寫項(xiàng)目文檔。多行注釋(/*/)注釋掉暫時(shí)不使用的代碼。/*This code was commented out by J.T. Kirk on Dec 9, 1997 because it was replaced by the preceding code. Delete it after two years if it is still not applicable. . . (the source code )*/表明這段源代碼暫時(shí)不使用??赡茉谝院髸?huì)改變主意使用它。必
4、須說明原因。單行注釋(/)用于成員函數(shù)中說明:程序邏輯代碼片斷臨時(shí)變量聲明等/ Apply a 5% discount to all invoices/ over $1000 as defined by the Sarek/ generosity campaign started in/ Feb. of 1995.建議采用單行注釋來進(jìn)行代碼中的說明性行為。1.3 注釋的內(nèi)容名稱注釋內(nèi)容Javadoc參數(shù)參數(shù)Arguments/Parameters參數(shù)類型用途使用的約束或者前提條件盡量給出一個(gè)示例屬性Fields/Attributes屬性描述所有可能的取值或取值范圍示例并發(fā)中可能存在的問題可見性
5、設(shè)置。通常屬性都設(shè)置為“私有”類型,如果設(shè)置不一樣,請(qǐng)給出原因。see ClassNamesee ClassName#memberFunctionName成員函數(shù)(外部)Member Functions功能、用途以及編寫該成員函數(shù)的原因輸入的參數(shù)返回值該函數(shù)拋出的“例外”以及拋出的條件已知的缺陷可見性設(shè)置代碼更改歷史示例(如何調(diào)用該成員函數(shù))可能的約束和前提條件并發(fā)性策略param name descriptionreturn descriptionexception name descriptiondeprecatedsincesee ClassNamesee ClassName#membe
6、rFunctionName成員函數(shù)(內(nèi)部)Member Functions注釋局部變量注釋復(fù)雜的代碼注釋控制結(jié)構(gòu),如分支、循環(huán)等,表明其控制流向及意圖注釋代碼功能以及緣由局部變量Local Variables用途實(shí)例變量Instance Variables用途類Classes類的用途類實(shí)例的所有取值獲取值范圍已知的缺陷(通常在功能尚未完善時(shí))類的開發(fā)/維護(hù)歷史并發(fā)策略authordeprecatedsincesee ClassNamesee ClassName#memberFunctionNameversion接口Interfaces功能、用途什么情況下適用該接口什么情況下不適用該接口auth
7、orsee ClassNamesee ClassName#memberFunctionNameversion包Packages文件名包名版權(quán)信息用途所涉及的相關(guān)包所包含的類開發(fā)/維護(hù)歷史2命名2.1 原則采用有明確意義的英文單詞全名(通常為名詞、動(dòng)詞)作為描述符,但不宜于太長(一般不超過20個(gè)字符)。每一個(gè)代碼行限制在80個(gè)字符以內(nèi)采用常見的專業(yè)術(shù)語。混合大小寫形式,便于閱讀。通常在定義名稱時(shí),采取名稱中的每一個(gè)單詞首字母大寫(第一個(gè)單詞首字母小寫),其余字母小寫的形式。盡量不要采用縮寫形式,在其縮寫已經(jīng)被廣泛接受的情況下,采用相應(yīng)的縮寫方式,如URL, HTML, XML等。雖然Java是大
8、小寫敏感的語言,但避免采用只是大小寫不同的名稱。如lastName和LastName等避免使用下劃線( _ )以及 $ 符號(hào),特別是前導(dǎo)或后置下劃線。因?yàn)檫@些變量經(jīng)常被用作系統(tǒng)變量。只是在常數(shù)定義中,因采用大寫形式而加入下劃線以增加可讀性。2.2 允許的縮寫名稱縮寫形式備注messagemsgmanagermgrdatabaseDbcommandCmdimplementationimpl2.3 命名規(guī)范名稱命名規(guī)范例子備注參數(shù)Arguments/Parameters該參數(shù)的英文單詞第一個(gè)英文單詞首字母小寫集合參數(shù)采用復(fù)數(shù)形式firstNamelastNamecustomers屬性Fields/
9、Attributes該屬性的英文單詞第一個(gè)英文單詞首字母小寫集合屬性采用復(fù)數(shù)形式firstNamelastNamewarpSpeedorderItemscustomers布爾形Get函數(shù)Boolean Getter Member Functionsis + 函數(shù)名has +函數(shù)名can +函數(shù)名isPersistent()isString()一般Get函數(shù)Getter Member Functionsget + 函數(shù)名getFirstName()getLastName()getWarpSpeed()Set函數(shù)Setter Member Functionsset + 函數(shù)名setFirstNam
10、e()setLastName()setWarpSpeed()成員函數(shù)Member Functions盡量以一個(gè)英文動(dòng)詞開頭第一個(gè)英文單詞首字母小寫openFile()addAccount()測試函數(shù)test + 函數(shù)名testOpenFile()主要是便于系統(tǒng)測試。在測試完成以后,可以搜索測試函數(shù),將其注釋調(diào)即可。局部變量Local Variables第一個(gè)英文單詞首字母小寫,其余單詞首字母大寫不要采用僅僅是大小寫不同的局部變量grandTotalcustomernewAccount實(shí)例變量Instance Variables采用與對(duì)象意義相關(guān)的與普通變量命名法則相同循環(huán)計(jì)數(shù)器Loop cou
11、nters采用慣例i, j, k, counter例外Exceptions采用慣例e常數(shù)Constants所有單詞采用大寫形式單詞之間用下劃線分隔,以便于閱讀MIN_BALANCEDEFAULT_DATE類Classes所有單詞的首字母均大寫CustomerSavingsAccount接口Interfaces所有單詞的首字母均大寫ContactablePrompterSingleton為了明確意義,通常最后一個(gè)單詞有后綴,如“-able”、“-ible”和“-er”等。包Packages包中各標(biāo)識(shí)符用句點(diǎn)(.)分隔由Sun公司發(fā)布的標(biāo)準(zhǔn)包是以“java”標(biāo)識(shí)符開頭的局部包由小寫的標(biāo)識(shí)符分隔而成
12、全球發(fā)行的包由公司域名倒寫而成java.awtpersistence.mapping.rationalinterface.screenserface.screensdao.www.naisa.dispatcher析構(gòu)器DestructorsJava本身沒有析構(gòu)器,但可以激活名為finalize()的函數(shù)finalize()組件Components/Widgets組件描述符 + 類型全名第一個(gè)單詞首字母小寫okButtoncustomerListfileMenu構(gòu)建器Constructors名字與類名完全相同Customer()SavingsAccount()文件名Files主類名 + “.ja
13、va”Customer.javaSavingsAccount.java四、格式1源文件基本組織在源文件中,建議采用以下組織。序號(hào)內(nèi)容例子1包注釋/*FILE: MySourceFile.javaPACKAGE: Copyright (c) 2000 NetDao, Inc. All Rights ReservedCommentsHistory:2000/10/20 : Developer Name Change some code2000/09/12 Developer Name Add Member Function2000/09/01 Developer Name Create this
14、file*/2包名package ;3引入Java公共包import ;4引入第三方包import com.weblogic.*;5引入自己的項(xiàng)目包import ;6類注釋/*Class MyNewClass1 Description goes hereversion 1.82 20 Oct. 2000author FirstName LastName*/7類聲明Public class MyNewClass1 extends SomeClass1 8變量聲明(含注釋) public protected package level variable private/* classVar1 的文
15、檔注釋*/public int classVar1;9實(shí)例變量申明(含注釋) public protected package level variable private/* instanceVar1的文檔注釋*/public Object instanceVar1;10構(gòu)建器/* MyNewClass的文檔注釋*/public MyNewClass() /implementation11方法/* doSomething1方法的文檔注釋*/public void doSomething1() /implementation/* doSomething2方法的文檔注釋param somePar
16、am descriptionreturn descriptionexception someExecption description*/public void doSomething2() /implementation12其它類申明/*Class MyNewClass2 Description goes hereversion 1.82 20 Oct. 2000author FirstName LastName*/Public class MyNewClass2 extends SomeClass2 2輔助格式2.1 空行(段落)為了增加可讀性,在程序中需要加入空行,形成邏輯段落。為此原則
17、場景例子兩個(gè)空行在每一個(gè)類或者接口申明前一個(gè)空行在成員函數(shù)之間方法中局部變量塊申明后邏輯塊或控制塊(Block)之間2.2 空格與括號(hào)空格應(yīng)該在以下場所適用。場景例子備注表達(dá)式中圓括號(hào)前后while (true) 參數(shù)列表中參數(shù)之間public Foo testFunc(arg1, arg2, arg3) 操作符兩端a += c + d;while (d+ = c+) 在運(yùn)算符“.”兩端和“+”和“-”前不要加入空格造型(cast)后面myMethod(byte) aNum, (Object) x)2.3 縮進(jìn)為了便于代碼閱讀,通常在程序中要采用縮進(jìn)方式,以對(duì)齊同一級(jí)別的代碼。通常每一個(gè)級(jí)別采
18、用Tab(4個(gè)空格)方式縮進(jìn)對(duì)齊。2.4 換行在一個(gè)表達(dá)式太長以致于超過一行,這是需要換行。黃行需要遵循以下原則原則例子備注在表達(dá)式忠的逗號(hào)后面換行someMethod(longExpression1, longExpression2, longExpression3, longExpression4);var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3, longExpression4);在操作符前面換行l(wèi)ongName1 = longName2 * (longName3 + long
19、Name4 longName5) + 4 * longName6;但不要這樣斷行,盡量保持同一級(jí)別運(yùn)算在同一行上longName1 = longName2 * (longName3 + longName4 longName5) + 4 * longName6;保持換行后的新行與同級(jí)別的代碼對(duì)齊,如果需要很多短換行,采用與第一行所近兩個(gè)Tab鍵位置someMethod(int argument1, Object argument2, String argument3, Object argument4) private static synchronized horkingLongMethodN
20、ame(int argument1, Object argument2, String argument3, Object argument4, Object argument5) 避免出現(xiàn)這樣的情形,而導(dǎo)致很多的短換行private static synchronized horkingLongMethodName(int argument1, Object argument2, String argument3, Object argument4, Object argument5) 多運(yùn)算符換行alpha = (aLongBooleanExpression) ? beta : gamma或者alpha = (aLongBooleanExpression) ? beta : gamma3推薦修飾符順序。修飾符時(shí)刻用于類中方法和變量的各種組合的關(guān)鍵字。在Java中存在一系列的修飾符。下面是推薦的修飾符順序 abstract static final native synchronized interface其中表示public, protected和private表示transient和volati
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康促進(jìn)教學(xué)課件
- 天宮課堂互動(dòng)活動(dòng)方案
- T/ZHCA 102-2020體重控制人群用營養(yǎng)代餐食品
- 我的媽媽課件分享
- 2025遼陽職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 2025蘇州幼兒師范高等??茖W(xué)校輔導(dǎo)員考試試題及答案
- 2025甘肅交通職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 媽媽生日慶?;顒?dòng)策劃方案
- 網(wǎng)絡(luò)工程畢業(yè)設(shè)計(jì)
- 創(chuàng)意寫作考試試卷及答案2025年
- 安徽省合肥一中2025屆高三5月回歸教材讀本 解答
- 運(yùn)動(dòng)素質(zhì)知到課后答案智慧樹章節(jié)測試答案2025年春浙江大學(xué)
- 中醫(yī)十八項(xiàng)護(hù)理操作并發(fā)癥及處理10-38-30
- 機(jī)械通氣基礎(chǔ)知識(shí)及基礎(chǔ)操作課件
- 打印版醫(yī)師執(zhí)業(yè)注冊(cè)健康體檢表(新版)
- 《空中領(lǐng)航》全套教學(xué)課件
- 人教版五年級(jí)下冊(cè)數(shù)學(xué)操作題期末專項(xiàng)練習(xí)(及解析)
- 中藥熏洗法操作評(píng)分標(biāo)準(zhǔn)與流程
- 學(xué)習(xí)解讀《執(zhí)業(yè)獸醫(yī)和鄉(xiāng)村獸醫(yī)管理辦法》課件
- 室內(nèi)裝飾不銹鋼技術(shù)交底
- 1.3.1動(dòng)量守恒定律課件(共13張PPT)
評(píng)論
0/150
提交評(píng)論