標籤:
從頭開始學習java,一些隨筆和資料幫忙自己記憶
一 命名規則
1)包:命名應該都是名詞或名詞性片語,全部小寫,單詞之間用"."分開;一般使用本公司/組織網站網域名稱的逆序後跟具體的軟體內部模組名
包命名舉例: package com.sun.java; package com.baidu.java;
2)類:名詞或名詞性片語,每個單字首大寫;一般不使用縮寫,除非其縮寫更通用和便於理解,大駝峰命名法,每一個單字的首字母都採用大寫字母,如HTML;當要區別介面和實作類別的時候,可以在類的後面加上"Impl",例如:interface Container與class ContainerImpl;Exception類用"Exception"做為類命名的結尾,例如:DataNotFoundException;抽象類別用"Abstract"做為類命名的開頭,例如:AbstractBeanDefinition,AbstractBeanFactory;Test類最好能用"Test"做為類命名的結尾。例如:ContainerTest
類命名舉例:class Person; class SpringRain
3)介面: 同"類"的命名規則
介面命名舉例:interface Runner;
4)方法:動詞或動詞性片語,首字母小寫,第二個及以後的單字首大寫,小駝峰命名法,第一個單字以小寫字母開始,第二個單字的首字母大寫;
方法命名舉例:run(); displayInformation();
5)變數: 名詞或名詞性片語,首字母小寫,第二個及以後的單字首大寫;
不提倡使用下畫線"_"和美元符"$"作為變數開頭;單詞間可以使用下畫線分隔;變數名不宜過長但也應有意義,除非是臨時使用(例如只涉及幾行代碼)後即丟棄的情況,不建議使用單個字母做變數名,常用的臨時使用的變數名包括表示整數的i,j,k,m,n和表示字母的c以及表示異常對象的e等。
變數命名舉例:int age; int student_age; String studentName; Exception e;
6)常量:每一個單詞都要大寫,單詞之間用"_"分開。
常量命名舉例:final static MIN_WIDTH = 4;final static DEFAULT_CONTAINER_SIZE = 20;
7)檔案的命名:java來源程式檔案以.java結尾,編譯後的檔案以.class結尾。例如:Container.java,Container.class。
總結:類名首字母應該大寫。欄位、方法以及對象(控制代碼)的首字母應小寫。對於所有標識符,其中包含的所有單詞都應緊靠在一起,而且大寫中間單詞的首字母。若在定義中出現了常數初始化字元,則大寫static final基本類型標識符中的所有字母。這樣便可標誌出它們屬於編譯期的常數。 Java包(Package)屬於一種特殊情況:它們全都是小寫字母,即便中間的單詞亦是如此。對於網域名稱副檔名稱,如com,org,net或者edu等,全部都應小寫。
二 檔案組織
1. 一個檔案由被空行分割而成的段落以及標識每個段落的可選注釋共同組成。超過2000行的程式難以閱讀,所以一個java程式檔案中的程式碼數不能超過2000行,除非有特殊原因。每個Java源檔案都包含一個單一的公用類或介面。若私人類和介面與一個公用類相關聯,可以將它們和公用類放入同一個源檔案。公用類必須是這個檔案中的第一個類或介面。
Java源檔案還遵循以下規則,這個規則規定了java程式段落的順序:
- 開頭注釋
- 包和引入語句
- 類和介面聲明
2.在一個Java類中,各部分順序:
1)屬性聲明
2)構造方法聲明
3)static語句
4)普通方法聲明
5)main方法聲明
6)內部類的聲明
總結:一般一個完整的java檔案內容如下:
1) 包的定義
2) impot類(輸入包的順序、避免使用*)輸入包應該按照java.*.*,javax.*.*,org.*.* ,com.*.*的順序import;在import的時候不應該使用* (例如: java.util.*)
3) 類或介面的定義
4)靜態變數定義,按public,protected,private順序
5)執行個體變數定義,按public,protected,private順序
6)構造方法
7)方法定義順序按照public方法(類自己的方法),實現介面的方法,重載的public方法,受保護方法,包範圍方法和私人方法。
注意:一般類中每個方法的程式碼數不要超過100行。
三 分隔和縮排
1.使用空行
在下述情況下使用單行的空白行來分隔:
1)在方法之間
2)在方法內部代碼的邏輯段落小節之間
3)在方法中聲明局部變數之後,具體的Java語句之前
4)在注釋行之前
5)在同一個源檔案中定義的多個類/介面之間使用雙行的空白行來分隔
2.使用空格符
除正常的成分之間以空格符分隔名(如資料類型和變數名之間),在下述情況下也應使用一個空格符來分隔:
1)運算子和運算子之間,如: c = a + b;
2)在參數列表中的逗號後面,如: void m1(int year, int month) {}
3)在if,for,while待語句之後 如: if (a > b) {}
3.使用分行符號
不建議在一行中寫多條語句,一條語句的長度一般超過了80個字元時,應該換行;
當一行運算式不能在一行內顯示,請按下列順序要求拆行:
1)在"("或"="符號後拆行
2)在","拆行
3)在一個操作符後拆行
4)把並發的拆行放到同一層級上的縮排
5)如果在拆行中再次拆分的時候遇到"(",應該新拆出來的行放在更遠的一個縮排層級上
4.使用小括弧
可以使用小括弧來強行規定運算順序
5.使用花括弧
開始位置可以位於當前內容的尾部,也可以另起一行
6.使用縮排
在下述情況下應用縮排
1)類中的成分
2)方法體或語句塊中的成分
3)換行時的非起始行
縮減量一般為在上一級成分的基礎上再縮排四個空格,而 Eclipse 預設格式化是採用 1 個定位字元的,可以採用下面的方式更改一下:Window ——> Preferences…… ——> Java ——> Code Style ——> Formatter 點右邊的"Edit……"按鈕,切換到第一個選項卡"Indentation",在 General settings 組將 Tab policy 由 Table only 改為 Space only,同時把 Indentation size 和 Tab size 改為 4,最後把最上面的 Profile name 取一個名字,名字任意,再點 OK 按鈕就可以了。以後按 Tab 鍵或者 Ctrl + Shift + F 會自動採用 4 個空格作為一個層次的縮排。在eclipse開發工具中,把代碼寫好之後,可以用快速鍵:CTRL + SHIFT + F來自動格式化代碼。
四 聲明語句
1.變數聲明:每行聲明一個變數,並加註釋。例如:
int count; // number of containers
int count, size; // AVOID THIS!
數組聲明應該採用首碼方式。例如:
int[] table;
String[] args;
2.類或介面聲明
1) "{"和聲明語句在同一行。
2)如果不能在同一行顯示,就將"extends"或"implements"進行拆行,並放在兩個縮排層級後。
3) "}"符號應該獨自佔一行。
例如:
public class ChiefExecutiveOfficer
extends Manager
implements Person {
...
}
3.方法聲明
"{"和聲明語句在同一行。
"}"符號應該獨自佔一行。
總結:每行聲明一個變數,並盡量在聲明變數的同時對其進行初始化,除非其初值尚不確定。局部變數應在其所在的方法或語句塊的開頭集中聲明,而不應隨用隨聲明。
五 注釋
Java有兩種注釋方法。"/* This is a comment */"或 "// This is a comment"
第一種應該被用到寫JavaDoc上,並且都用"/**"開頭。
第二種適合於在做部分代碼的注釋,但只適合做非常短內容的注釋。
java命名規範