方法/步驟
-
1. *不允許把多個短語句寫在一行中,即一行只寫一條語句
1. 示例:如下例子不符合規范。
LogFilename now = null; LogFilename that = null;
應如下書寫:
LogFilename now = null;
LogFilename that = null;
2. *if, for, do, while, case, switch, default 等語句自占一行,且if, for, do, while等語句的執行語句無論多少都要加括號{}。
示例:如下例子不符合規范。
if(writeToFile) writeFileThread.interrupt();
應如下書寫:
if(writeToFile)
{
writeFileThread.interrupt();
}
3. *相對獨立的程序塊之間、變量說明之后必須加空行。
示例:如下例子不符合規范。
if(log.getLevel() < LogConfig.getRecordLevel())
{
return;
}
LogWriter writer;
應如下書寫:
if(log.getLevel() < LogConfig.getRecordLevel())
{
return;
}
LogWriter writer;
int index;
4. *對齊只使用空格鍵,不使用TAB鍵。
說明:以免用不同的編輯器閱讀程序時,因TAB鍵所設置的空格數目不同而造成程序布局不整齊。
JBuilder、UltraEdit等編輯環境,支持行首TAB替換成空格,應將該選項打開。
5. *在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者前后要加空格;
進行非對等操作時,如果是關系密切的立即操作符(如.),后不應加空格。
說明:采用這種松散方式編寫代碼的目的是使代碼更加清晰。
由於留空格所產生的清晰性是相對的,所以,在已經非常清晰的語句中沒有必要再留空格,
如果語句已足夠清晰則括號內側(即左括號后面和右括號前面)不需要加空格,多重括號間不必加空格,因為在Java語言中括號已經是最清晰的標志了。
在長語句中,如果需要加的空格非常多,那么應該保持整體清晰,而在局部不加空格。給操作符留空格時不要連續留兩個以上空格。
示例:
(1) 逗號、分號只在后面加空格。
int a, b, c;
1.
(2) 比較操作符, 賦值操作符"="、 "+=",算術操作符"+"、"%",邏輯操作符"&&"、"&",位域操作符"<<"、"^"等雙目操作符的前后加空格。
if (current_time >= MAX_TIME_VALUE)
a = b + c;
a *= 2;
a = b ^ 2;
1.
(3) "!"、"~"、"++"、"--"、"&"(地址運算符)等單目操作符前后不加空格。
flag = !isEmpty; // 非操作"!"與內容之間
i++; // "++","--"與內容之間
1.
(4) "."前后不加空格。
p.id = pid; // "."前后不加空格
1.
(5) if、for、while、switch等與后面的括號間應加空格,使if等關鍵字更為突出、明顯。
if (a >= b && c > d)
-
命名規范:
1.包名采用域后綴倒置的加上自定義的包名,采用小寫字母。在部門內部應該規划好包名的范圍,防止產生沖突。
部門內部產品使用部門的名稱加上模塊名稱。產品線的產品使用產品的名稱加上模塊的名稱。
2.類名和接口使用類意義完整的英文描述,每個英文單詞的首字母使用大寫、其余字母使用小寫的大小寫混合法。
3.方法名使用類意義完整的英文描述:第一個單詞的字母使用小寫、剩余單詞首字母大寫其余字母小寫的大小寫混合法。
4. 方法中,存取屬性的方法采用setter 和 getter方法,動作方法采用動詞和動賓結構。
5.屬性名使用意義完整的英文描述:第一個單詞的字母使用小寫、剩余單詞首字母大寫其余字母小寫的大小寫混合法。屬性名不能與方法名相同。
6. 常量名使用全大寫的英文描述,英文單詞之間用下划線分隔開,並且使用 final static 修飾。
7.屬性名可以和公有方法參數相同,不能和局部變量相同,引用非靜態成員變量時使用 this 引用,引用靜態成員變量時使用類名引用。
-
復雜度:
建議的最大規模:
繼承層次 4層
類的行數 1000行(包含{})
類的屬性 10個
類的方法 20個
類友好方法 10個
類私有方法 15個
類保護方法 10個
類公有方法 10個
類調用方法 20個
方法參數 5個
return語句 1個