文件命名
Java的文件主要有兩種,編程的源代碼與解釋後的字節碼,前者的後綴是.java,後者是.class。Java的文件名是大小寫敏感的。
起始註釋
所有的源代碼文件都應該有C語言風格的起始註釋,列出類名、版本號、日期和版權信息等,如下所示:
/***************************************************************
*文件名稱:*.java
*版本:
*日期:
*作者:
*說明:
*類說明:
*其他說明:
**************************************************************/
包和引用聲明
大部分Java源代碼文件的非註釋內容的第一行是包聲明(如果有的話),然後是引用聲明。需要注意的是,包的名字全部採用小寫。
類和接口聲明(Class and Interface Declarations)
下表描述了類和接口聲明的各個部分以及它們出現的先後次序。
1.類/接口文檔註釋(/**……*/)
該註釋中所需包含的信息,參見"文檔註釋"
2.類或接口的聲明
3.類/接口實現的註釋(/*……*/)
如果有必要的話,該註釋應包含任何有關整個類或接口的信息,而這些信息又不適合作爲類/接口文檔註釋。
4.類的(靜態)變量
首先是類的公共變量,隨後是保護變量,再後是包一級別的變量(沒有訪問修飾符,access modifier),最後是私有變量。
5.實例變量
首先是公共級別的,隨後是保護級別的,再後是包一級別的(沒有訪問修飾符),最後是私有級別的。
6.構造器
7.方法
這些方法應該按功能,而非作用域或訪問權限,分組。例如,一個私有的類方法可以置於兩個公有的實例方法之間。其目的是爲了更便於閱讀和理解代碼。
縮進排版:
4個空格常被作爲縮進排版的一個單位。縮進的確切解釋並未詳細指定(空格 vs. 製表符)。一個製表符等於8個空格(而非4個)。
行長度
儘量避免一行的長度超過80個字符,因爲很多終端和工具不能很好處理之。
注意:用於文檔中的例子應該使用更短的行長,長度一般不超過70個字符。
實現註釋用以註釋代碼或者實現細節。文檔註釋從實現自由(implementation-free)的角度描述代碼的規範。它可以被那些手頭沒有源碼的開發人員讀懂。
註釋應被用來給出代碼的總括,並提供代碼自身沒有提供的附加信息。註釋應該僅包含與閱讀和理解程序有關的信息。例如,相應的包如何被建立或位於哪個目錄下之類的信息不應包括在註釋中。
在註釋裏,對設計決策中重要的或者不是顯而易見的地方進行說明是可以的,但應避免提供代碼中己清晰表達出來的重複信息。多餘的註釋很容易過時。通常應避免那些代碼更新就可能過時的註釋。
注意:頻繁的註釋有時反映出代碼的低質量。當你覺得被迫要加註釋的時候,考慮一下重寫代碼使其更清晰。
註釋不應寫在用星號或其他字符畫出來的大框裏。註釋不應包括諸如製表符和回退符之類的特殊字符。
包(Packages) :包名的後續部分根據不同機構各自內部的命名規範而不盡相同。這類命名規範可能以特定目錄名的組成來區分部門(department),項目(project),機器(machine),或註冊名(login names)。
類(Classes):類名是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。儘量使你的類名簡潔而富於描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)。
接口(Interfaces):命名規則:大小寫規則與類名相似。
方法(Methods):方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。
變量(Variables):除了變量名外,所有實例,包括類,類常量,均採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。變量名不應以下劃線或美元符號開頭,儘管這在語法上是允許的。變量名應簡短且富於描述。變量名的選用應該易於記憶,即,能夠指出其用途。儘量避免單個字符的變量名,除非是一次性的臨時變量。臨時變量通常被取名爲i,j,k,m和n,它們一般用於整型;c,d,e,它們一般用於字符型。
實例變量(Instance Variables):大小寫規則和變量名相似,除了前面需要一個下劃線。
常量(Constants):類常量和ANSI常量的聲明,應該全部大寫,單詞間用下劃線隔開。(儘量避免ANSI常量,容易引起錯誤)