1、訪(fǎng)問(wèn)實(shí)例與類(lèi)中變量的規則
一般情況下,都不要將類(lèi)中的變量聲明為公共類(lèi)型(public),除非設計要求如此,如果變量不是公共類(lèi)型的,這樣職能通過(guò)public類(lèi)型方法去訪(fǎng)問(wèn)相關(guān)變量,例如:getXX()方法等。如果你創(chuàng )建的類(lèi)中沒(méi)有熱核和行為為()方法,此時(shí)你不得不將這個(gè)類(lèi)中的變量聲明
為公共(public)類(lèi)型,以供外界訪(fǎng)問(wèn)。
2、引用類(lèi)中的靜態(tài)變量與方法的規則
當你試圖在你的代碼中引用類(lèi)的靜態(tài)方法或靜態(tài)成員變量時(shí),不要通過(guò)該類(lèi)的實(shí)例對象引用它們,盡管這樣是允許的。你應該通過(guò)類(lèi)來(lái)引用它們,如下所示的代碼:
public static classMethod();
MyClass.classMethod(); //正確
myObject.classMethod(); //不正確(應該避免)
3、變量賦值規則
盡量避免在一個(gè)當行語(yǔ)句中將一個(gè)變量賦多個(gè)值,這樣將是代碼變得艱澀、難懂,
例如下面的代碼:
userName=user1.name=‘jerry lin‘; //這種賦值方式應盡量避免
盡量避免對一元表達式的賦值,例如下面的代碼在Java中是絕對不允許的;
if(i++=m++){
...
}
當然可以修改為下面的方式,便可以逃避語(yǔ)法錯誤,不過(guò)這是不被推薦使用的:
if((c++=d++)!=0){
...
}
計量避免嵌套賦值,這樣會(huì )浪費編譯器較多的時(shí)間,例如下面的代碼:
d=(a=b+c)+r;
上面的賦值應修改為下面的方式:
a=b+c;
d=a+r;
FX:綜合規則
括號規則
應盡量使用括號()來(lái)界定表達式的結合順序,避免由于運算符優(yōu)先級的問(wèn)題而導致非主觀(guān)意圖錯誤,即使你對運算符優(yōu)先級比較了解而且代碼看起來(lái)也比較清晰,但是其
他程序員看這段代碼未必像你一樣清楚,例如下面的代碼:
if(i==j&&m==n) //應盡量避免
if((i==j)&&(m==n)) //正確
返回值規則
應計量使程序結構與你的意圖匹配,例如:
if(isTrue){
return true;
}else{
return false;
}
上面的程序有些“受累不討好”的感覺(jué),應該修改為:
return isTrue;
相似的有,
if(condition){
return x;
}
return y;
應該修改為:
return(condition?x:y);
特殊注釋規則
你可以在程序中通過(guò)一些特殊注釋來(lái)表示你的偽代碼,例如,用EXECUTE表示該代碼有問(wèn)題但是可執行,用FIXME表示代碼有問(wèn)題切不可執行
例如下面的代碼:
if(isTrue){
//EXECUTE
int i=0;
i++;
}else{
//FIXME 因為i沒(méi)有被聲明
i++;
}
4、常量的命名規則
Java中的常量一般采用大寫(xiě)字母單詞命名,單詞與單詞之間用下劃線(xiàn)(_)加以分割,這符合ANSI的常量命名規則
如下所示的代碼:
static final int MIN_WIDTH=14;
static final int MAX_WIDTH=1000;
static final intGET_THE_MEMORTY=128;
5、變量的命名規則
變量的命名規則是,除了變量(variable),所有對象的實(shí)例(instance),類(lèi)(class)與類(lèi)的敞亮(constant)的第一個(gè)字母應該小寫(xiě),在多個(gè)單詞混合的情況下第一個(gè)單詞后
的所有單詞的第一個(gè)字母大寫(xiě),區域字母小寫(xiě)的規則外。變量的第一個(gè)字母即使系統允許,也不要為_(kāi)或者$。變量名字因該緊湊而有意義。變量的名字應該是易記憶、易于理解的,及時(shí)進(jìn)個(gè)較長(cháng)的時(shí)間也可以依其名而知其意。另外單自負的變量名應該盡量避免,除非臨時(shí)變量,例如,一些整數字符臨時(shí)變量:i,j,k,m,n等以及單字符變量:c,d,e等,
如下所示代碼:
int i;
char c;
float imageWidth;
6、方法的命名規則
方法一般來(lái)說(shuō)都是動(dòng)詞,第一個(gè)字母應該小寫(xiě),在多個(gè)單詞混合的情況下,第一個(gè)單詞后的所有單詞的第一個(gè)字母大寫(xiě),其余字母小寫(xiě)
例如下面的代碼:
run();
runFast();
getBackground();
在方法的聲明部分,通常要提供對方法功能的描述,以及方法中返回值與參數的說(shuō)明
例如下面的代碼:
/**
* 顯示系統信息方法
* @param message 系統信息參數
* @return message 返回系統信息
*/
public String showMessage(String message) {
...
//statements;
...
return message;
}
如果該方法在軟件產(chǎn)品的不斷升級中已經(jīng)不被建議使用了,可以通過(guò)在方法聲明注釋
福分添加關(guān)鍵字@deprecate實(shí)現。
7、代碼長(cháng)度與拆行規則
代碼行長(cháng)度
一般來(lái)說(shuō)Java的代碼行長(cháng)度應該小于80個(gè)字符,超過(guò)這個(gè)長(cháng)度可能在一些開(kāi)發(fā)工具或編輯器上無(wú)法很好的顯示,而且也會(huì )給閱讀程序帶來(lái)麻煩。因此,我們應盡量避免超過(guò)80個(gè)字符長(cháng)度的代碼行。在一些文檔編輯器中慣用長(cháng)度普遍為70個(gè)字符左右。
拆行規則
當完整的一行代碼難以編排在統一個(gè)代碼行中時(shí),我們可以根據下面的規則,對Java源代碼進(jìn)行拆行編排:
(1)在逗號后拆行
(2)在運算符(operator)前拆行
(3)高層拆行優(yōu)于低層拆行
(4)拆下的代碼行應該與其同登記的代碼行左對齊
(5)如果上面的法則令代碼行右側距頁(yè)邊的距離,差距較大并且混亂,我們可以在適當行采用Tab鍵(8空格鍵)處理.
聯(lián)系客服