Java編程風格與命名 規範的整理
基本命名規範
包命名
包名按照域名的範圍從大到小逐步列出,恰好和Internet上的域名命名規則相反。由一組以「。」連接的標識符構成,通常第一個標識符為符合網路域名的兩個或者三個英文小寫字母。
PeopleTestPage XMLExample
類,介面命名類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單片語成,則每個單詞的首字母均應為大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由於類是設計用來代表對象的,所以在命名類時應盡量選擇名詞。PeopleTestPageXMLExample 方法名
方法的名字的第一個單詞應以小寫字母作為開頭,後面的單詞則用大寫字母開頭。可以為動詞或動詞+名片語合。
設置/獲取某個值的Method,應該遵循setV/getV規範
返回長度的Method,應該命名為length
測試某個布爾值的Method,應該命名為isV將對象轉換為某個特定類型的Mehod應該命名為toF
getDate(); length(); isReady(); toOracleFormat();變數名
1.普通變數命名應該採用首字母小寫,其他字母首字母大寫的方式。
2.final static變數的名字應該都大寫,並且指出完整含義。如果一個常量名稱由多個單片語成,則應該用下劃線來分割這些單詞如。
NUM_DAYS_IN_WEEK MAX_VALU
3. 如果需要對變數名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性
context=ctx message=msg
4. 通過在結尾處放置一個量詞,就可創建更加統一的變數
First(一組變數中的第一個) Last(一組變數中的最後一個) Next(一組變數中的下一個變數) Prev(一組變數中的上一個) Cur(一組變數中的當前變數)
5. 無論什麼時候,均提倡應用常量取代數字、固定字元串。也就是說,程序中除0,1以外,盡量不應該出現其他數字。
6. 索引變數:i、j、k等只作為小型循環的循環索引變數。
7. 邏輯變數:避免用flag來命名狀態變數,用is來命名邏輯變數。if(isClosed){ dosomeworks; return; }
數組
總是使用以下方式定義數組:
int[] arr = new int[10];
禁止使用C語言的是形式:
禁止 int arr[] = new int[10];集合
數組或者容器推薦命名方式為名詞+s的方式,例如:
List persons = getPerson(); for(Person person : persons){ dosomeworks; }泛型
應該盡量簡明扼要(最好是一個字母),以利於與普通的class或interface區分
Container中的Element應該用E表示;Map里的key用K表示,value用V;Type用T表示;異常用X表示如果需要接收多個Type類型的參數,應該用鄰接T的大寫字母——例如S——來依次表示,當然也可以用T1, T2這樣的方式
public class HashSet extends AbstractSet {…} public class HashMap extends AbstractMap {…} public class ThreadLocal {…} public interface Functor { T val() throws X; }
代碼風格花括弧
花括弧統一採用以下格式:if(bool experssion){ dosomework; }
除非花括弧中為空,不然任何情況下不能省略花括弧,並且花括弧必須換行,例如:
if(i==0){ return; } while(true) {}
以下寫法禁止出現:
禁止 if(i != 0) return; 禁止 if(i !=0)
括弧
括弧的前,後一個字元不需要空格,例如:
Person p = new Person(「Jack」, 17);
空格
逗號之後緊跟一個空格。
Person p = new Person(「Jack」, 16, 「China」);
2. 二元操作符前後跟空格。
int i = a + b – c * d;3. 一元操作符不需要空格,for語句分號後有空格。
for(int i = 0; I
4. 括弧前後不需要空格類
類的定義結構按照順序為:
1) 常量
2) 成員變數3) 構造函數
4) 成員函數5) get和set方法
各個部分之間留出一個空行。
例如:
1.規範類模板:
class Person{ private final static int MAX_AGE = 100; private String firstname = 「Jack」; public Person(){} public Person(String firstname){ this.firstname = firstname; } public void doExercise(){ dosomeworks; run(); } private void run(){ dosomeworks; } public getFirstname(){ return firstname; } public setFirstname(String firstname){ this.firstname = firstname; } }2.構造函數
1) 參數為空的構造函數出現在最上方
2) 有調用關係的構造函數相鄰
3) 參數盡量由少到多從上至下排序3.使用成員變數
在類的方法內引用成員變數了命名衝突以外,不使用this。非特殊情況在類的方法內都不使用get和set方法存取成員變數。
4.方法
有調用關係的方法盡量放在相鄰的位置,public和private方法可以交叉放置。
5.get和set方法,所有需要公開的成員變數都要符合良好的javabean規範,提供get和set方法,盡量使用IDE工具自動生成。Javadoc注釋
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之後在主程序中可以為每個類、介面、方法、欄位添加 Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、介面、方法、欄位所完成的功能,這句話應單獨佔據一行以突出其概括作用,在這句話後面可以跟隨更加詳細的描述段落。在描述性段落之後還可以跟隨一些以Javadoc注釋標籤開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯示


※Java多態對象的 類型轉換
※Java學習之—多態
※寫好Java代碼的 30條經驗總結
※Java其實很簡單
TAG:java學習吧 |
※BEM思想(css命名規範)
※Buccellati以文學作品女主人公命名Romanza新作
※編程器及適配器命名規則
※網易代理VR遊戲《Beat Saber》正式命名為《節奏空間》
※谷歌史上最大規模品牌重塑:工具命名為Google Ads
※三星Gear應用重命名Galaxy Wearable 並修復安卓Pie兼容問題
※小區命名的整治和規範,呼喚長效機制
※使用 Python 批量處理文件,以重命名為例
※印度教要求 Pharrell 與 adidas Originals 將「Hu Holi」系列重新命名並發表道歉聲明
※全球的VR遊戲《BeatSaber》,正式命名為《節奏空間》
※三星高管確認Galaxy系列命名規則或將改變,X將現身
※被微軟改名部附體啦?蘋果或啟用新的iPhone命名規則
※Fitbit新款智能手錶 命名為Versa
※前端每周清單:Slack Webpack構建優化,CSS 命名規範與用戶追蹤
※Chatito-使用簡單的DSL為AI聊天機器人、NLP任務、命名實體識別或文本分類模型生成數據集
※Facebook語音助理正在緊鑼密鼓研發中:初步命名為「Aloha」
※C命名空間(Namespace)
※掌閱新一代手寫設備命名確定:iReader Smart登場
※Jovi意外泄露vivo新機 全新X系旗艦命名X23
※教育部:清理規範基礎教育領域競賽掛牌命名表彰活動