您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Java命名規(guī)范有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
基本命名規(guī)范
包命名
包名按照域名的范圍從大到小逐步列出,恰好和Internet上的域名命名規(guī)則相反。
由一組以“.”連接的標(biāo)識符構(gòu)成,通常***個標(biāo)識符為符合網(wǎng)絡(luò)域名的兩個或者三個英文小寫字母。
People TestPage XMLExample
類,接口命名
類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單詞組成,則每個單詞的首字母均應(yīng)為大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應(yīng)大寫,如:XMLExample,還有一點命名技巧就是由于類是設(shè)計用來代表對象的,所以在命名類時應(yīng)盡量選擇名詞。
People TestPage XMLExample
方法名
方法的名字的***個單詞應(yīng)以小寫字母作為開頭,后面的單詞則用大寫字母開頭??梢詾閯釉~或動詞+名詞組合。
設(shè)置/獲取某個值的Method,應(yīng)該遵循setV/getV規(guī)范
返回長度的Method,應(yīng)該命名為length
測試某個布爾值的Method,應(yīng)該命名為isV
將對象轉(zhuǎn)換為某個特定類型的Mehod應(yīng)該命名為toF
getDate(); length(); isReady(); toOracleFormat();
變量名
1.普通變量命名應(yīng)該采用首字母小寫,其他字母首字母大寫的方式。
2.final static變量的名字應(yīng)該都大寫,并且指出完整含義。如果一個常量名稱由多個單詞組成,則應(yīng)該用下劃線來分割這些單詞如。
NUM_DAYS_IN_WEEK MAX_VALU
3. 如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規(guī)則的一致性
context=ctx message=msg
4. 通過在結(jié)尾處放置一個量詞,就可創(chuàng)建更加統(tǒng)一的變量
First(一組變量中的***個) Last(一組變量中的***一個) Next(一組變量中的下一個變量) Prev(一組變量中的上一個) Cur(一組變量中的當(dāng)前變量)
5. 無論什么時候,均提倡應(yīng)用常量取代數(shù)字、固定字符串。也就是說,程序中除0,1以外,盡量不應(yīng)該出現(xiàn)其他數(shù)字。
6. 索引變量:i、j、k等只作為小型循環(huán)的循環(huán)索引變量。
7. 邏輯變量:避免用flag來命名狀態(tài)變量,用is來命名邏輯變量。
if(isClosed){ dosomeworks; return; }
數(shù)組
總是使用以下方式定義數(shù)組:
int[] arr = new int[10];
禁止使用C語言的是形式:
禁止 int arr[] = new int[10];
集合
數(shù)組或者容器推薦命名方式為名詞+s的方式,例如:
List<Person> persons = getPerson(); for(Person person : persons){ dosomeworks; }
泛型
應(yīng)該盡量簡明扼要(***是一個字母),以利于與普通的class或interface區(qū)分
Container中的Element應(yīng)該用E表示;Map里的key用K表示,value用V;Type用T表示;異常用X表示
如果需要接收多個Type類型的參數(shù),應(yīng)該用鄰接T的大寫字母——例如S——來依次表示,當(dāng)然也可以用T1, T2這樣的方式
public class HashSet<E> extends AbstractSet<E> {…} public class HashMap<K, V> extends AbstractMap<K, V> {…} public class ThreadLocal<T> {…} public interface Functor<T, X extends Throwable> { T val() throws X; }
推薦的命名
1.當(dāng)要區(qū)別接口和實現(xiàn)類的時候,可以在類的后面加上“Impl”。
interface Container class ContainerImpl
2.Exception類***能用“Exception”做為類命名的結(jié)尾
DataNotFoundException InvalidArgumentException
3.抽象類***能用“Abstract”做為類命名的開頭
AbstractBeanDefinition AbstractBeanFactory
4. Test類***能用“Test”做為類命名的結(jié)尾
ContainerTest
5.簡稱與縮寫(不推薦使用)
cp代表colorPoint buf代表buffer off代表offset len代表length
除非是在循環(huán)中,否則一般不推薦使用單個字母作為變量名,不過也有例外,即約定俗成的單個字母
b代表byte c代表char d代表double e代表Exception f代表float i, j, k代表整數(shù) l代表long o代表Object s代表String v代表某些類型的特定值
代碼風(fēng)格
花括號
花括號統(tǒng)一采用以下格式:
if(bool experssion){ dosomework; }
除非花括號中為空,不然任何情況下不能省略花括號,并且花括號必須換行,例如:
if(i==0){ return; } while(true) {}
以下寫法禁止出現(xiàn):
禁止 if(i != 0) return; 禁止 if(i !=0) {return;}
括號
括號的前,后一個字符不需要空格,例如:
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 < 10; i++){ dosomework; }
4. 括號前后不需要空格
類
類的定義結(jié)構(gòu)按照順序為:
1) 常量
2) 成員變量
3) 構(gòu)造函數(shù)
4) 成員函數(shù)
5) get和set方法
各個部分之間留出一個空行。
例如:
規(guī)范類模板:
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.構(gòu)造函數(shù)
1) 參數(shù)為空的構(gòu)造函數(shù)出現(xiàn)在最上方
2) 有調(diào)用關(guān)系的構(gòu)造函數(shù)相鄰
3) 參數(shù)盡量由少到多從上至下排序
3.使用成員變量
在類的方法內(nèi)引用成員變量了命名沖突以外,不使用this。非特殊情況在類的方法內(nèi)都不使用get和set方法存取成員變量。
4.方法
有調(diào)用關(guān)系的方法盡量放在相鄰的位置,public和private方法可以交叉放置。
5.get和set方法,所有需要公開的成員變量都要符合良好的javabean規(guī)范,提供get和set方法,盡量使用IDE工具自動生成。
Javadoc注釋
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權(quán)信息,之后在主程序中可以為每個類、接口、方法、字段添加 Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、接口、方法、字段所完成的功能,這句話應(yīng)單獨占據(jù)一行以突出其概括作用,在這句話后面可以跟隨更加詳細(xì)的描述段落。在描述性段落之后還可以跟隨一些以Javadoc注釋標(biāo)簽開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯示
關(guān)于Java命名規(guī)范有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。