更新時(shí)間:2022-07-05 11:35:12 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1360次
Java組件開發(fā)也是有規(guī)范的,動(dòng)力節(jié)點(diǎn)小編先給大家介紹一下Java開發(fā)編碼規(guī)范。
Java 命名約定。
采用適用于相關(guān)領(lǐng)域的術(shù)語
采用大小寫混合使名字可讀
盡量少用縮寫,但如果用了,要明智地使用,且在整個(gè)工程中統(tǒng)一
避免使用長(zhǎng)的名字(一般小于15個(gè)字母)
避免使用類似的名字,或者僅僅是大小寫不同的名字
避免使用下劃線(除靜態(tài)常量等)
包(Package)
Java包(Package)采用完整的英文描述符,應(yīng)該都是由小寫字母組成。對(duì)于全局包,將你的 Internet 域名反轉(zhuǎn)并接上包名。 例如:java.awt,com.ambysoft.www.persistence
類(Class)
采用完整的英文描述符,所有單詞的第一個(gè)字母大寫(一些專有的縮寫詞,比如:AWTException等則除外)。Class的名字建議使用名詞或者名詞短語。 例如:Customer, SavingsAccount,LayoutManager等
接口(Interface)
接口的名字取決于接口的主要功能和用途。如果接口是使對(duì)象具有某種特定的功能,則接口的名字建議使用可以描述這種功能的形容詞(加上-able或者-ible后綴)
例如:Searchable,Sortable,NetworkAccessible等
如果接口不是使對(duì)象具有某種特定的功能則建議使用名詞或者名詞短語(同類的命名規(guī)則)。
組件/部件(Component)
使用完整的英文描述來說明組件的用途,末端應(yīng)接上組件類型。 okButton,customerList,fileMenu
異常(Exception)
通常采用字母 e 表示異常。
類變量 字段
采用完整的英文描述,第一個(gè)字母小寫,任何中間單詞的首字母大寫。 firstName, lastName
靜態(tài)常量字段(static final)
全部采用大寫字母,單詞之間用下劃線分隔。 MIN_BALANCE, DEFAULT_DATE
方法
方法命名采用大小寫混合的形式。以小寫字母開頭,名字中其他單詞的首字母以大寫字母開頭,所有其它的單詞都為小寫字母,不要使用下劃線分隔單詞。方法的命名應(yīng)該能描繪出方法的作用和功能,方法的名字建議使用祈使動(dòng)詞或者動(dòng)詞短語。
例如:showStatus(),drawCircle(),addLayoutComponent()
成員函數(shù)
被訪問字段名的前面加上前綴 get。 getFirstName(), getLastName()
布爾型的獲取成員函數(shù) 所有的布爾型獲取函數(shù)必須用單詞 is 做前綴。 isPersistent(), isString() ;設(shè)置成員函數(shù) 被訪問字段名的前面加上前綴 set。 setFirstName(),setLastName(),setWarpSpeed()
空行規(guī)范
空行的使用有益于將代碼按照邏輯分段,提高代碼的可讀性。在下列情況下建議使用一個(gè)空行:
l 在版權(quán)聲明塊、包聲明塊、引用聲明塊之后;
l 在類的聲明之間;
l 在方法的聲明之間;
l 在類中聲明最后一個(gè)屬性之后,聲明第一個(gè)方法之前。
空格規(guī)范
在一個(gè)關(guān)鍵字和它所修飾的塊之間??捎糜谌缦碌年P(guān)鍵字:catch,for,if,switch,synchronized,while。下列關(guān)鍵字的后面不要跟隨空格:super ,this 。
在一個(gè)參數(shù)列表中逗號(hào)之后。
空格不應(yīng)該置于方法名與其左括號(hào)之間
左括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格
右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格
例如:
public setMethod(int i, String j)
縮進(jìn)規(guī)范
行的縮進(jìn)要求是四個(gè)空格。由于在使用不同的源代碼管理工具時(shí)Tab字符將因?yàn)橛脩粼O(shè)置的不同而擴(kuò)展為不同的寬度,所以請(qǐng)不要使用Tab鍵。建議修改各管理工具的設(shè)置將Tab字符擴(kuò)展成4個(gè)空格。
通常采用字母 i,j,k 或者 counter 都可以接受。 i, j, k, counter
1. Java 注釋約定一個(gè)很好的可遵循的有關(guān)注釋的經(jīng)驗(yàn)法則是:?jiǎn)枂柲阕约?,你如果從未見過這段代碼,要在合理的時(shí)間內(nèi)有效地明白這段代碼,你需要哪些信息。
(1)一般概念
注釋應(yīng)該增加代碼的清晰度
保持注釋的簡(jiǎn)潔
在寫代碼之前寫注釋(建議)
對(duì)于復(fù)雜點(diǎn)的邏輯,注釋出為什么做了一些事,而不僅僅是做了什么
(2)示范
文檔注釋 在緊靠接口、類、成員函數(shù)和字段聲明的前面注釋它們。
單行 在成員函數(shù)內(nèi)采用單行注釋,來說明業(yè)務(wù)邏輯、代碼段和暫時(shí)變量的聲明。注釋符"//"后必須緊跟一個(gè)空格,然后才是注釋信息。
(3)注釋哪些部分
類類的目的、即類所完成的功能,注釋出采用的不變量。
接口設(shè)置接口的目的、它應(yīng)如何被使用以及如何不被使用。
成員函數(shù)注釋 對(duì)于設(shè)置與獲取成員函數(shù),在成員變量已有說明的情況下,可以不加注釋;普通成員函數(shù)要求說明完成什么功能,參數(shù)含義是什么返回什么;
普通成員函數(shù)內(nèi)部注釋 控制結(jié)構(gòu),代碼做了些什么以及為什么這樣做,處理順序等。
實(shí)參/參數(shù) 參數(shù)含義、及其它任何約束或前提條件
字段/屬性 字段描述
局部變量 無特別意義的情況下不加注釋
2. Java 文件樣式約定所有的 Java(*.java) 文件都必須遵守如下的樣式規(guī)則:
(1)版權(quán)信息
版權(quán)信息必須在 java 文件的開頭,比如:
/** * Copyright ? 2000 Shanghai XXX Co. Ltd. * All right reserved. */
其他不需要出現(xiàn)在 javadoc 的信息也可以包含在這里。
(2)Package/Imports
package 行要在 import 行之前,import 中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個(gè)包中的不同子目錄,則應(yīng)該用 * 來處理。(如果有特殊要求,可以不采用*來處理,有時(shí)候那樣更加明確使用了那些類)
package hotlava.net.stats;import java.io.*;import java.util.Observable;importhotlava.util.Application;
這里 java.io.* 是用來代替InputStream andOutputStream 的。
(3)Class
接下來的是類的注釋,一般是用來解釋類的。
接下來是類定義,包含了在不同的行的 extends 和 implements
public class CounterSet extends Observable implements Cloneable{……}
(4)Class Fields
接下來是類的成員變量:
public 的成員變量必須生成文檔(JavaDoc)。
proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。(建議都加注釋,以便更明確,一目了然)
(5)存取方法(類的設(shè)置與獲取成員函數(shù))
接下來是類變量的存取的方法。
(6)構(gòu)造函數(shù)
接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面)。
public CounterSet(int size){
this.size = size;
}
(7)類方法 (類的普通成員函數(shù))
下面開始寫類的方法:
(8)toString 方法
一般情況下,每一個(gè)類都應(yīng)該定義 toString 方法:
public String toString() { ……}
(9)main 方法
普通類,考慮置入一個(gè)main()方法,其中包含用于測(cè)試那個(gè)類的代碼,如果包含了main() 方法, 那么它應(yīng)該寫在類的底部。
3. Java編碼其它約定
文檔化 必須用 javadoc 來為類生成文檔。不僅因?yàn)樗菢?biāo)準(zhǔn),這也是被各種 java 編譯器都認(rèn)可的方法。
縮進(jìn)
縮進(jìn)應(yīng)該是每行2個(gè)(或4個(gè))空格。 盡量不要在源文件中保存Tab字符, 在使用不同的源代碼管理工具時(shí)Tab字符將因?yàn)橛脩粼O(shè)置的不同而擴(kuò)展為不同的寬度。
如果你使用 UltrEdit 作為你的 Java 源代碼編輯器的話,你可以通過如下操作來禁止保存Tab字符, 方法是通過 UltrEdit中先設(shè)定 Tab 使用的長(zhǎng)度室2個(gè)空格,然后用 Format|Tabs toSpaces 菜單將 Tab 轉(zhuǎn)換為空格。
頁寬 換行
頁寬應(yīng)該設(shè)置為80字符。 源代碼一般不會(huì)超過這個(gè)寬度, 并導(dǎo)致無法完整顯示, 但這一設(shè)置也可以靈活調(diào)整。 在任何情況下, 一條語句折行后, 應(yīng)該比原來的語句再縮進(jìn)2個(gè)字符。
可以依據(jù)如下一般規(guī)則斷開:
在一個(gè)逗號(hào)后面斷開
在一個(gè)操作符前面斷開
寧可選擇較高級(jí)別(higher-level)的斷開,而非較低級(jí)別(lower-level)的斷開
新的一行應(yīng)該與上一行同一級(jí)別表達(dá)式的開頭處對(duì)齊
如果以上規(guī)則導(dǎo)致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn)8個(gè)空格。
{} 對(duì)
{} 中的語句應(yīng)該單獨(dú)作為一行。
例如, 下面的第1行是錯(cuò)誤的, 第2行是正確的:
if (i>0) { i ++ }; // 錯(cuò)誤, { 和 } 在同一行
// 下面寫法正確, 單獨(dú)作為一行
if (i>0) {
i ++
};
括號(hào)
左括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格; 同樣, 右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格。
下面的例子說明括號(hào)和空格的錯(cuò)誤及正確使用:
CallProc( AParameter ); // 錯(cuò)誤
CallProc(AParameter); // 正確
不要在語句中使用無意義的括號(hào),括號(hào)只應(yīng)該為達(dá)到某種目的而出現(xiàn)在源代碼中。
JSP文件命名
采用完整的英文描述說明JSP所完成的功能,盡可能包括一個(gè)生動(dòng)的動(dòng)詞,第一個(gè)字母小寫,如:viewMessage.jsp、editUser.jsp或者forumChooser.jsp等。
Servlet類命名
一般對(duì)應(yīng)于所服務(wù)的對(duì)象加后綴Service來命名,如:UserService,TradeService等。
4. 一些編程建議
使用 StringBuffer 對(duì)象
在處理 String 的時(shí)候要盡量使用 StringBuffer 類,StringBuffer 類是構(gòu)成 String 類的基礎(chǔ)。String 類將 StringBuffer 類封裝了起來,(以花費(fèi)更多時(shí)間為代價(jià))為開發(fā)人員提供了一個(gè)安全的接口。當(dāng)我們?cè)跇?gòu)造字符串的時(shí)候,我們應(yīng)該用 StringBuffer 來實(shí)現(xiàn)大部分的工作,當(dāng)工作完成后將 StringBuffer 對(duì)象再轉(zhuǎn)換為需要的 String 對(duì)象。比如:如果有一個(gè)字符串必須不斷地在其后添加許多字符來完成構(gòu)造,那么我們應(yīng)該使用 StringBuffer
對(duì)象和它的 append() 方法。如果我們用 String 對(duì)象代替 StringBuffer 對(duì)象的話,會(huì)花費(fèi)許多不必要的創(chuàng)建和釋放對(duì)象的 CPU 時(shí)間。
避免太多的使用 synchronized 關(guān)鍵字
避免不必要的使用關(guān)鍵字 synchronized,應(yīng)該在必要的時(shí)候再使用它,這是一個(gè)避免死鎖的好方法。 必須使用時(shí),也盡量控制范圍,最好在塊級(jí)控制。
避免使用 java.util.Vector 類
因?yàn)?quot;Unlike the new collection implementations, Vectoris synchronized.",所以使用java.util.Vector類在性能上會(huì)有所減低。
盡量使用接口而不是一個(gè)具體的類。(即面向接口編程)
每行聲明變量的數(shù)量(Number Per Line) 推薦一行一個(gè)聲明,因?yàn)檫@樣以利于寫注釋
簡(jiǎn)單語句
賦值和表達(dá)式規(guī)范:每行只包含一條語句。
本地變量:如果本地變量聲明后不再變動(dòng)應(yīng)當(dāng)聲明為final,使編譯器生成更有效率的代碼。
數(shù)組的聲明:數(shù)組的[]應(yīng)該緊跟類型名,而不是數(shù)組名。在“[”之前不能有空格。
return語句規(guī)范:return語句后面的返回值不可以用括號(hào)包起來,除非是后面是一個(gè)表達(dá)式。
以上就是關(guān)于“Java組件開發(fā)規(guī)范之開發(fā)編碼規(guī)范”的介紹,在學(xué)習(xí)Java的過程中,還會(huì)遇到很多的Java開發(fā)工具,大家可要好好學(xué)習(xí)哦。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743