Java代碼規(guī)范

一、為什么要有編碼規(guī)范(Why Have Code Conventions)
編碼規(guī)范對(duì)于程序員而言尤為重要,有以下幾個(gè)原因:

  • 一個(gè)軟件的生命周期中,80%的花費(fèi)在于維護(hù) - 幾乎沒有任何一個(gè)軟件,在其整個(gè)生命周期中,均由最初的開發(fā)人員來維護(hù) - 編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼 - 如果你將源碼作為產(chǎn)品發(fā)布,就需要確任它是否被很好的打包并且清晰無誤,一如你已構(gòu)建的 其它任何產(chǎn)品。為了執(zhí)行規(guī)范,每個(gè)軟件開發(fā)人員必須一致遵守編碼規(guī)范
    二Java 源文件(.java文件)
    每個(gè) Java 源文件都包含一個(gè)單一的公共類或接口。若私有類和接口與一個(gè)公共類相關(guān)聯(lián),可以 將它們和公共類放入同一個(gè)源文件。公共類必須是這個(gè)文件中的第一個(gè)類或接口。
    Java 源文件還遵循以下規(guī)則:
    1 開頭注釋,其中列出類名、版本信息、日期和版權(quán) 聲明
    例如:
Paste_Image.png

2 包和引入語句
在多數(shù) Java 源文件中,第一個(gè)非注釋行是包語句。在它之后可以跟引入語句。例如:
package java.awt;
import java.awt.peer.CanvasPeer;
3 類和接口聲明
下表描述了類和接口聲明的各個(gè)部分以及它們出現(xiàn)的先后次序。

Paste_Image.png

三、排版規(guī)范
1、4 個(gè)空格常被作為縮進(jìn)排版的一個(gè)單位。
2、行長度
盡量避免一行的長度超過 80 個(gè)字符,因?yàn)楹芏嘟K端和工具不能很好處理。
注意:用于文檔中的例子應(yīng)該使用更短的行長,長度一般不超過 70 個(gè)字符。
3、 換行
當(dāng)一個(gè)表達(dá)式無法容納在一行內(nèi)時(shí),可以依據(jù)如下一般規(guī)則斷開之:

  • 在一個(gè)逗號(hào)后面斷開
  • 在一個(gè)操作符前面斷開
  • 寧可選擇較高級(jí)別(higher-level)的斷開,而非較低級(jí)別(lower-level)的斷開
  • 新的一行應(yīng)該與上一行同一級(jí)別表達(dá)式的開頭處對(duì)齊
  • 如果以上規(guī)則導(dǎo)致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn) 8 個(gè)空格。
    以下是斷開方法調(diào)用的一些例子:
Paste_Image.png

以下是兩個(gè)斷開算術(shù)表達(dá)式的例子。前者更好,因?yàn)閿嚅_處位于括號(hào)表達(dá)式的外邊,這是個(gè)較高 級(jí)別的斷開。

Paste_Image.png

以下是兩個(gè)縮進(jìn)方法聲明的例子。前者是常規(guī)情形。后者若使用常規(guī)的縮進(jìn)方式將會(huì)使第二行和 第三行移得很靠右,所以代之以縮進(jìn) 8 個(gè)空格
//CONVENTIONAL INDENTATION someMethod(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) { ... }
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS private static synchronized horkingLongMethodName(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) { ... }
以下是兩個(gè)縮進(jìn)方法聲明的例子。前者是常規(guī)情形。后者若使用常規(guī)的縮進(jìn)方式將會(huì)使第二行和 第三行移得很靠右,所以代之以縮進(jìn) 8 個(gè)空格

Paste_Image.png

四、語句
1、每行至多包含一條語句
int a; int b;(這樣的代碼最好不要出現(xiàn))
2、復(fù)合語句是包含在大括號(hào)中的語句序列,形如"{ 語句 }"。例如下面各段。

  • 被括其中的語句應(yīng)該較之復(fù)合語句縮進(jìn)一個(gè)層次
  • 左大括號(hào)"{"應(yīng)位于復(fù)合語句起始行的行尾;右大括號(hào)"}"應(yīng)另起一行并與復(fù)合語句首行對(duì)齊。
  • 大括號(hào)可以被用于所有語句,如果是單個(gè)語句,最好也是用大括號(hào),這樣便于添加語句而無需擔(dān)心由于忘了加括號(hào)而引入 bug。
    3、if語句的格式:
Paste_Image.png

五、空行
1 空行,空行將邏輯相關(guān)的代碼段分隔開,以提高可讀性。
下列情況應(yīng)該總是使用兩個(gè)空行:

  • 一個(gè)源文件的兩個(gè)片段(section)之間 - 類聲明和接口聲明之間
    下列情況應(yīng)該總是使用一個(gè)空行:
  • 兩個(gè)方法之間
  • 方法內(nèi)的局部變量和方法的第一條語句之間
  • 一個(gè)方法內(nèi)的兩個(gè)邏輯段之間,用以提高可讀性
    六、命名規(guī)范
Paste_Image.png

·參考文獻(xiàn)《Java 語言編碼規(guī)范》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容