從零基礎學習Java 要知道Java中的一些規則
從零基礎學習Java 要知道Java中的一些規則,明白這些規則,對學習Java有很大的幫助。
1、訪問實例與類中變數的規則
一般情況下,都不要將類中的變數聲明為公共類型(public),除非設計要求如此,如果變數不是公共類型的,這樣職能通過public類型方法去訪問相關變數,例如:getXX()方法等。如果你創建的類中沒有熱核和行為為()方法,此時你不得不將這個類中的變數聲明
為公共(public)類型,以供外界訪問。
2、引用類中的靜態變數與方法的規則
當你試圖在你的代碼中引用類的靜態方法或靜態成員變數時,不要通過該類的實例對象引用它們,儘管這樣是允許的。你應該通過類來引用它們,如下所示的代碼:
public static classMethod();
MyClass.classMethod(); //正確
myObject.classMethod(); //不正確(應該避免)
3、變數賦值規則
盡量避免在一個當行語句中將一個變數賦多個值,這樣將是代碼變得艱澀、難懂,
例如下面的代碼:
userName=user1.name=『jerry lin『; //這種賦值方式應盡量避免
盡量避免對一元表達式的賦值,例如下面的代碼在Java中是絕對不允許的;
if(i++=m++){
...
}
當然可以修改為下面的方式,便可以逃避語法錯誤,不過這是不被推薦使用的:
if((c++=d++)!=0){
...
}
計量避免嵌套賦值,這樣會浪費編譯器較多的時間,例如下面的代碼:
d=(a=b+c)+r;
上面的賦值應修改為下面的方式:
a=b+c;
d=a+r;
FX:綜合規則
括弧規則
應盡量使用括弧()來界定表達式的結合順序,避免由於運算符優先順序的問題而導致非主觀意圖錯誤,即使你對運算符優先順序比較了解而且代碼看起來也比較清晰,但是其
他程序員看這段代碼未必像你一樣清楚,例如下面的代碼:
if(i==j&&m==n) //應盡量避免
if((i==j)&&(m==n)) //正確
返回值規則
應計量使程序結構與你的意圖匹配,例如:
if(isTrue){
return true;
}else{
return false;
}
上面的程序有些「受累不討好」的感覺,應該修改為:
return isTrue;
相似的有,
if(condition){
return x;
}
return y;
應該修改為:
return(condition?x:y);
特殊注釋規則
你可以在程序中通過一些特殊注釋來表示你的偽代碼,例如,用EXECUTE表示該代碼有問題但是可執行,用FIXME表示代碼有問題切不可執行
例如下面的代碼:
if(isTrue){
//EXECUTE
int i=0;
i++;
}else{
//FIXME 因為i沒有被聲明
i++;
}
4、常量的命名規則
Java中的常量一般採用大寫字母單詞命名,單詞與單詞之間用下劃線(_)加以分割,這符合ANSI的常量命名規則
如下所示的代碼:
static final int MIN_WIDTH=14;
static final int MAX_WIDTH=1000;
static final intGET_THE_MEMORTY=128;
5、變數的命名規則
變數的命名規則是,除了變數(variable),所有對象的實例(instance),類(class)與類的敞亮(constant)的第一個字母應該小寫,在多個單詞混合的情況下第一個單詞後
的所有單詞的第一個字母大寫,區域字母小寫的規則外。變數的第一個字母即使系統允許,也不要為_或者$。變數名字因該緊湊而有意義。變數的名字應該是易記憶、易於理解的,及時進個較長的時間也可以依其名而知其意。另外單自負的變數名應該盡量避免,除非臨時變數,例如,一些整數字元臨時變數:i,j,k,m,n等以及單字元變數:c,d,e等,
如下所示代碼:
int i;
char c;
float imageWidth;
6、方法的命名規則
方法一般來說都是動詞,第一個字母應該小寫,在多個單詞混合的情況下,第一個單詞後的所有單詞的第一個字母大寫,其餘字母小寫
例如下面的代碼:
run();
runFast();
getBackground();
在方法的聲明部分,通常要提供對方法功能的描述,以及方法中返回值與參數的說明
例如下面的代碼:
/**
* 顯示系統信息方法
* @param message 系統信息參數
* @return message 返回系統信息
*/
public String showMessage(String message) {
...
//statements;
...
return message;
}
如果該方法在軟體產品的不斷升級中已經不被建議使用了,可以通過在方法聲明注釋
福分添加關鍵字@deprecate實現。
7、代碼長度與拆行規則
代碼行長度
一般來說Java的代碼行長度應該小於80個字元,超過這個長度可能在一些開發工具或編輯器上無法很好的顯示,而且也會給閱讀程序帶來麻煩。因此,我們應盡量避免超過80個字元長度的代碼行。在一些文檔編輯器中慣用長度普遍為70個字元左右。
拆行規則
當完整的一行代碼難以編排在統一個代碼行中時,我們可以根據下面的規則,對Java源代碼進行拆行編排:
(1)在逗號後拆行
(2)在運算符(operator)前拆行
(3)高層拆行優於低層拆行
(4)拆下的代碼行應該與其同登記的代碼行左對齊
(5)如果上面的法則令代碼行右側距頁邊的距離,差距較大並且混亂,我們可以在適當行採用Tab鍵(8空格鍵)處理.
※Java並發編程實戰:線程基本概念
※java新手學習 路線方向
※IT行業這麼熱,可是不是每個人都能幹程序員這一行
※搞IT不等於程序猿!為什麼大家都想進入IT行業?
※編程語言是部車,你選了其中哪輛?
TAG:java學習吧 |
※大數據Hadoop和Spark哪個更重要一些?內含學習資料
※基於對比學習的Image Captioning
※強化學習 2 Markov Decision Process 馬可夫決策過程
※DeepMind高管回答:Alpha zero 的強化學習是否真的不要訓練數據?
※詳解深度學習中的 Normalization,不只是 BN
※深度學習之CapsuleNets理論與Python實踐!
※學習篇/Jimmy Kimmel and Oscars Stars Surprise Moviegoers
※深度學習的爆發要歸功給誰?Yann LeCun、Fran?ois Chollet各執一詞
※說說為什麼選擇Paddlepaddle而不是TensorFlow | 深度學習公開課
※Tomaso Poggio:深度學習需要從鍊金術走向化學
※讀National Geography Kids有感:和孩子一起學習,一起成長
※使用TensorFlow,Kafka和MemSQL進行實時機器學習
※深度強化學習-Policy Gradient基本實現
※Reliance Industries收購印度個性化學習平台Embibe
※學習通分的遊戲:Fraction Formula Game
※真實全景圖像強化學習 AI 平台——Matterport3DSimulator
※如何學習Low Poly Style?
※英特爾宣布Windows機器學習Movidius Myriad X VPU
※Michael I.Jordan 撰文:不要被深度學習一葉障目不見泰山
※Michael I.Jordan 撰文:不要被深度學習一葉障目不見泰山