溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

什么是java命名約定

發(fā)布時間:2021-10-23 17:35:19 來源:億速云 閱讀:258 作者:iii 欄目:編程語言

這篇文章主要講解了“什么是java命名約定”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“什么是java命名約定”吧!

01、包(package)

包的命名應(yīng)該遵守以下規(guī)則:

  • 應(yīng)該全部是小寫字母

  • 點分隔符之間有且僅有一個自然語義的英語單詞

  • 包名統(tǒng)一使用單數(shù)形式,比如說 com.itwanger.util 不能是 com.itwanger.utils

  • 在最新的 Java  編程規(guī)范中,要求開發(fā)人員在自己定義的包名前加上唯一的前綴。由于互聯(lián)網(wǎng)上的域名是不會重復(fù)的,所以多數(shù)開發(fā)人員采用自己公司(或者個人博客)在互聯(lián)網(wǎng)上的域名稱作為包的唯一前綴。比如我文章中出現(xiàn)的代碼示例的包名就是  package com.itwanger。

02、類(class)

類的命名應(yīng)該遵守以下規(guī)則:

  • 必須以大寫字母開頭

  • 最好是一個名詞,比如說 System

  • 類名使用 UpperCamelCase(駝峰式命名)風(fēng)格

  • 盡量不要省略成單詞的首字母,但以下情形例外:DO/BO/DTO/VO/AO/ PO / UID 等

什么是java命名約定

另外,如果是抽象類的話,使用 Abstract 或 Base 開頭;如果是異常類的話,使用 Exception 結(jié)尾;如果是測試類的話,使用 Test  結(jié)尾。

03、接口(interface)

接口的命名應(yīng)該遵守以下規(guī)則:

  • 必須以大寫字母開頭

  • 最好是一個形容詞,比如說 Runnable

  • 盡量不要省略成單詞的首字母

來看個例子:

interface Printable {}

接口和實現(xiàn)類之間也有一些規(guī)則:

  • 實現(xiàn)類用 Impl 的后綴與接口區(qū)別,比如說 CacheServiceImpl 實現(xiàn) CacheService 接口

  • 或者,AbstractTranslator 實現(xiàn) Translatable 接口

04、字段(field)和變量(variable)

字段和變量的命名應(yīng)該遵守以下規(guī)則:

  • 必須以小寫字母開頭

  • 可以包含多個單詞,第一個單詞的首字母小寫,其他的單詞首字母大寫,比如說 firstName

  • 最好不要使用單個字符,比如說 int a,除非是局部變量

  • 類型與中括號緊挨相連來表示數(shù)組,比如說 int[] arrayDemo,main 方法中字符串?dāng)?shù)組參數(shù)不應(yīng)該寫成 String args[]

  • POJO 類中的任何布爾類型的變量,都不要加 is 前綴,否則部分框架解析會引起序列化錯誤,我自己知道的有 fastjson

  • 避免在子類和父類的成員變量之間、或者不同代碼塊的局部變量之間采用完全相同的命名,使可理解性降低。子類、父類成員變量名相同,即使是 public  類型的變量也能夠通過編譯,另外,局部變量在同一方法內(nèi)的不同代碼塊中同名也是合法的,這些情況都要避免。

反例:

public class ConfusingName {     public int stock;      // 非 setter/getter 的參數(shù)名稱,不允許與本類成員變量同名     public void get(String alibaba) {         if (condition) {             final int money = 666; // ...         }         for (int i = 0; i < 10; i++) { // 在同一方法體中,不允許與其它代碼塊中的 money 命名相同 final int money = 15978; // ...         }     } }  class Son extends ConfusingName { // 不允許與父類的成員變量名稱相同 public int stock; }

05、常量(constant)

常量的命名應(yīng)該遵守以下規(guī)則:

  • 應(yīng)該全部是大寫字母

  • 可以包含多個單詞,單詞之間使用“_”連接,比如說 MAX_PRIORITY,力求語義表達完整清楚,不要嫌名字長

  • 可以包含數(shù)字,但不能以數(shù)字開頭

來看個例子:

static final int MIN_AGE = 18;

06、方法(method)

方法的命名應(yīng)該遵守以下規(guī)則:

  • 必須以小寫字母開頭

  • 最好是一個動詞,比如說 print()

  • 可以包含多個單詞,第一個單詞的首字母小寫,其他的單詞首字母大寫,比如說 actionPerformed()

來看個例子:

void writeBook(){}

Service/DAO 層的方法命名規(guī)約:

  • 獲取單個對象的方法用 get 做前綴

  • 獲取多個對象的方法用 list 做前綴,復(fù)數(shù)結(jié)尾,如:listObjects

  • 獲取統(tǒng)計值的方法用 count 做前綴

  • 插入的方法用 save/insert 做前綴

  • 刪除的方法用 remove/delete 做前綴

  • 修改的方法用 update 做前綴

感謝各位的閱讀,以上就是“什么是java命名約定”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對什么是java命名約定這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(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)容。

AI