Java 程式風格
如果為了更好的可讀性、可以違反下列規則
以下建議是為了增加可讀性,使程式碼容易被了解、維護、較一致。
Naming Conventions
General Naming Conventions
package 全小寫
資料型態(Type)必須是名詞,開頭大寫,大小寫並用,駝峰
變數命名 開頭小寫,大小寫並用,駝峰
這樣的方式,可以容易將型態和變數做區隔,避免潛在的宣告衝突。
常數的命名(final的變數) 全大寫,並使用 "_" 來分隔每個 key words
Method的名稱必須是動詞,開頭小寫,大小寫並用,駝峰
命名時,"不要"將專有名詞的縮寫或簡稱全部大寫
私有成員變數 的命名,在後面加 (_)
除了變數的名稱和型態,最重要的就是有效範圍。 利用(__) 可以很容易跟暫存變數做區別。 對於我們來說,class variable 比 method variable 更重要也更有意義。 所以class variable 應該被突顯。 對 setter method 來說,也可輕易找到合理的參數名稱,避免混淆 (__)建議加在後面,因為可讀性比較好
共用的變數名稱,應該和資料型態(Type)有一樣的命名
減少使用不同的 專有名詞 or 不同名稱 的數量,可降低複雜性。且可從變數名稱輕易推斷出型態。 如果某些理由讓此慣例變得不洽當,這強烈地意味著此型態(Type)的定義或命名並不洽當。 非共用的變數名稱都有其扮演的角色,可結合角色與型態,來命名這些變數, 例如: Point startingPoint, centerPoint;
所有的命名都應以英文(English)來書寫
變數在命名時,當使用的範圍較大者 命名可以長一點,反之 使用範圍較小 命名就短一點。
暫時儲存所用的變數或索引(index) 的命名最好短一點,我們在看的時候,就可以假設他不會被其他地方用到。 一般整數的暫存變數,會命名為 i, j, k, m, n 而字元(character)則會命名為 c, d
倘若Method 命名裡的某些單字意義,若已隱含在物件的名稱裡,就可以拿掉
Specific Naming Conventions
物件的屬性若要被存取,必須要透過 get/set 的方法
布林變數或方法的命名,應以 is 開頭
isSet, isVisible, isFinished
is 開頭已經取代了不佳的布林命名,EX:status, flag 避免使用 isStatus or isFlag 這樣過於抽象的命名,可幫助我們選擇更有意義的名字。 設定布林成員的方法,其名稱開頭必須為 set,EX: void setFound(boolean isFound); 在某些情況下,可以用 has、can、should 等字眼來取代 is,會更為恰當 boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
可在負責計算的方法命名中,加入compute來表示
"Compute" 這個字眼可以立即提醒我們 這是很耗時的操作,若有重複使用,可以先把結果暫存起來 一致性的使用,對於可讀性是有幫助的
*
new[ClassName]
某物件需要透過別的物件(工廠)方法來呼叫產生,命名應為 new[ClassName]。
例如:
代表Point這個物件的產生是被管制的,使用者應該使用此方法來產生物件,而不是直接 new Point()
;
Last updated