版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java
編碼規(guī)范
(
JavaCodingStandard
)
目錄
Java編碼規(guī)范概要
41代碼風格
41.1一般格式說明
41.2基本結構
42代碼結構
52.1變更履歷
52.2Package聲明
72.3Import聲明
82.4ClassHeader92.5Class102.6常量(
MenifestVariables)
122.7成員變量(
InstanceVariables)
132.8初始塊(
InitializerBlocks)
132.9構造器(
Constructors)
142.10屬性(
Properties)
152.11方法(
Methods)
152.12內部類(
InnerClass)
213例子
21編碼規(guī)范
241命名規(guī)范
241.1Package命名規(guī)范
241.2Class命名規(guī)范
251.3Method命名規(guī)范
271.4變量命名規(guī)范
292代碼風格規(guī)范
312.1控制語句風格規(guī)范
312.2命令語句風格規(guī)范
332.3聲明語句風格規(guī)范
353書寫格式規(guī)范
384設計規(guī)范
414.1質量測定基準(
Metrics)規(guī)范
414.2Class設計規(guī)范
414.3Method設計規(guī)范
434.4變量設計規(guī)范
445Java語言規(guī)范
465.1Object整體規(guī)范
465.2修飾符規(guī)范
485.3Javadoc規(guī)范
505.4Import規(guī)范
515.5字符串規(guī)范
515.6數值規(guī)范
535.7日期規(guī)范
545.8集合規(guī)范
545.9Stream規(guī)范
555.10例外規(guī)范
565.11線程規(guī)范
575.12Servlet規(guī)范
595.13EJB規(guī)范
61
Java
編碼規(guī)范概要Java
代碼風格概要說明如下。代碼風格一般格式說明除字符串和注釋內以外,代碼中的空格一律為半角。代碼中不應有
[TAB]
字符(除字符串內),需要
[TAB]
字符的地方一律替換成
4
個空格。代碼中換行和
DOS
系統(tǒng)相同,為
/r/n
。代碼應當有縮進,縮進為
4
個空格。缺省的一行代碼最大長度為
80
個半角字符,假如超過這個長度就需要換行。一般的情況下,換行后應縮進四格。任何可以省略大括號的地方都不應省略大括號。
基本結構一個類
/
接口的基本結構應當是這樣的。以下依次說明。
代碼結構
變更履歷范例
說明
“文獻”的第一行是正文,在它前面沒有
NULL
行。當客戶規(guī)定代碼規(guī)約的時候,使用上述模版。其中需要修改的部分已經用粗體
標出。在“變更履歷”中有一部分是版本編號(
ver
),具體的編號方法依從項目制定的版本變更策略。在“變更履歷”的版權信息中,有關于年份的描述。其中“
2023”
是指這個類第一次發(fā)行的年份;“
2023”
是指這個類最后一次發(fā)行的年份。在“變更履歷”的版權信息中,有關于版權所有者的描述。其中的“
NeusoftBusinessSoftware”
,根據不同的項目,可以修改成TOSHIBA
等字樣。假如項目中有相關的許可信息(
license
),這些信息可以在“
LINCENSEINFORMATION”
處加入。假如項目中,變更履歷使用
CVS
等源碼管理系統(tǒng)維護,那么此“變更履歷”可以精簡為
Package
聲明范例
說明
在客戶沒有明確指定
package
的條件下,
package
遵循以下命名規(guī)則:package
名所有為小寫字母,中間用“
.”
分割。package
名中嚴禁使用除小寫英語句半角字母以外的任何字符,但是根據需要可以使用下劃線“
_”
。例如
標準的
package
名可以分為三部分:
<
公司名
>.<
應用程序名
>.<
包名
>
。其中“公司名”部分可以是“公司名稱
+
部門名稱”。例如根據需要“公司名”部分也可省略。其中“應用程序名”部分可以是“應用程序名稱
+
子程序名稱”。例如一般來說,“應用程序名”部分不能省略。其中“包名”部分應當根據程序設計的包結構來定義;“包名”這部分可以根據需要省略。通常,“
Package
聲明”部分不能省略。假如是應用程序比較簡樸,可以簡化
package
的名稱。例如,簡樸的實驗使用的類,可以命名為“
myapp.test”
或者“
test”
;假如是一個小程序,可以命名為“
myapp”
或者“
main”
。規(guī)定在每個
package
的目錄下(前提是這個
package
中有
class
文獻),都必須有一個
package.html
文獻。使用這個文獻來描述這個
package
的信息。
Import
聲明范例
説明“Import
聲明”內部沒有
NULL
行。“Import
聲明”的順序是java.*->javax.*->
中間件、庫等提供的
package->
程序中的
packageImport
需要指出
import
哪一個類,嚴禁
import
整個
package
。例如通常程序內部用到的
package
都是用
import
語句聲明在程序頭部;原則上,程序內部不再出現(xiàn)沒有
import
聲明的類。例如但是會混淆的聲明應當在程序中特別指出是那一個
package
中的。例如:程序中用到的類應當在
Import
中聲明,但是程序中沒有用到的類不要出現(xiàn)在
Import
中。例如
ClassHeader范例
說明
“ClassHeader”
可以分為
3
部分——說明部分、版本信息和其他信息,中間使用
NULL
行分割。程序中的每一個類都必須有
Class
注釋。根據需要,
Class
注釋中除了說明部分不能省略外,版本信息和其他信息都可以省略。Class
注釋中的說明部分的寫法參考范例,根據需要,可以省略其中的一些說明部分(可省略的部分后標有可選)。Class
注釋的版本信息中,除
@since
可以根據需要省略外,其他的都不可省略。Class
注釋的版本信息要上下對齊。@version
信息的結構是“
Ver<
版本
><
日期
><
狀態(tài)
>”
。其中“版本”是項目版本,具體依據項目制定的版本變更規(guī)范;其中“日期”為此文獻最后一次修改的日期;其中狀態(tài)有兩種選擇“新規(guī)做成”和“改訂”。@since
信息的結構是“
<
項目名稱
>Ver<
版本
>”
。其中“項目名稱”可以是項目的全稱也可以是項目的簡稱,但是要注旨在整個項目中這個名稱應當不變;其中“版本”是這個類第一次被創(chuàng)建時的項目版本,具體依據項目制定的版本變更規(guī)范。Class
注釋的其他信息中,
@see
和
@deprecated
都可以省略。@deprecated
的說明信息的結構是“
<
在哪個版本中不推薦使用
><
使用哪個類替代
>”
。例如根據需要,選擇上面兩種表述方法中的一種,替換劃線部分,做成需要的
@deprecated
信息。
Class范例
說明
ClassBody
應當縮進
4
格。Class
的最后一行規(guī)定以“
}///:~”
結尾。這樣做有以下好處。標明到了文獻最后一行。防止不小心刪除最后一個字符(大括號)。有些編輯器可以去除每行后的空格,但是也有也許把這個大括號刪除了。以這樣結尾,可以防止這一點。Class
聲明部分可以分為
4
部分——
Class
前綴、
Class
名、擴展信息和例外信息。Class
聲明的結構是“
[public/protected/private][final/abstract/static/strictfp]class/interface<
類名
>[extends…][implements…][throws…]”
。關于
public/protected/private
,在一般情況下(指
Top-LevelClass
),規(guī)定所有的類都應當顯式聲明為
public
。關于
final
,假如項目中沒有顯式地強調安全性,規(guī)定嚴禁將一個類聲明為
final
。關于
abstract
,假如一個類可以聲明成
interface
,規(guī)定嚴禁把類聲明為
abstract
;假如一個類中沒有
abstract
的方法,規(guī)定嚴禁把類聲明為
abstract
。不能繼承聲明為
static
的類。假如項目中不涉及到嚴格的數據運算(譬如,強調
float
和
double
的運算),那么嚴禁把類聲明為
strictfp
。Class
的命名遵循以下規(guī)則。Class
的名稱應當是一個名詞短語??梢允恰靶稳菰~
/
名詞
+
名詞”的形式。例如
InputDataStream
、
Developer
、OrderItem
等。Class
的名稱由
1
個或
1
個以上的英語句單詞組成,其中每一個英語句單詞的首字母應當大寫,其余字母小寫。規(guī)定
Class
名稱只能由
26
個英文字母組成。Class
命名應當具有一致性。(一致性是指,假如在設計階段擬定了一個實體,那么和這個實體相關的
Class
應當具有一致的名稱。舉例來說,“用戶”這個實體可以被稱作
User
、
Account
或者
Person
。假如決定使用
User
來表達這個實體的話,則相應的
Class
名應當是
UserFile
和
UserFileParser
等,避免在系統(tǒng)中出現(xiàn)既有
UserFile
又有
AccountFileParser的情況。)表達復數的
Class
可以命名為“單數
+s”
的形式。例如,
User
和
Users
、
Action
和
Actions
、
Mapping
和
Mappings
等。Interface
的名稱可以是一個名詞或者是一個形容詞。例如
IService
和
IRunnable
。規(guī)定
Interface
名稱只能由
26
個英文字母組成。Interface
的名稱由
1
個或
1
個以上的英語句單詞組成,其中每一個英語句單詞的首字母應當大寫,其余字母小寫;規(guī)定Interface
的名稱前應當有一個“
I”
。實現(xiàn)
Interface
的類一般地應當加上后綴“
Imp”
。例如,接口
IListener
相應
MyListenerImp
。關于
Class
聲明部分的縮進,可以在如下形式中選擇一種。
常量(
MenifestVariables
)范例
說明
類中常量的聲明位于類的最前面,和類的聲明之間
NULL
一行。在聲明常量的時候給它付值。規(guī)定常量應當被修飾為
public
、
static
和
final
;一般地,把
public
改成
protected
和
private
沒有特別大的意義。常量的名稱使用
26
個英語句大寫字母和下劃線“
_”
組成。如無設計上的必要,規(guī)定把常量寫在
class
中代替把常量寫在
interface
中。
成員變量(
InstanceVariables
)范例
說明
在聲明變量時應當給它付值。卻省對象付值為
null
;整型、長型、浮點型等為
0
;布爾型為
false
。一般地,類成員變量聲明為
private
。假如需要訪問,則提供相應的
getter
和
setter
方法。原則上不通過
instance._variable
的方式訪問。假如設計上無繼承擴展的考慮,則不應聲明為
protected
。規(guī)定類成員變量不聲明為
friendly
。類成員變量的名稱使用
26
個英文字母并且規(guī)定使用下劃線“
_”
開頭。類成員變量是否為
static
應當在設計時決定。一般地,不要把類成員變量聲明為
final
(即,假如聲明為
final
,那么必須聲明static
,作為常量使用)。
初始塊(
InitializerBlocks
)范例
說明
是否使用
staticblock
應當在設計時決定。原則上,在聲明類成員變量的時候同時進行初始化。如非必要,不應把聲明時的初始化工作在
staticblock
中做。例如
構造器(
Constructors
)范例
說明
缺省的構造器必須顯示的聲明。如無設計上的規(guī)定,構造器一律聲明為
public
;對于
SingLETon
模式,構造器可以聲明為
private
;在不是必要的條件下,不應把構造器聲明為
protected
和
friendly
。假如缺省構造器中沒有任何代碼,則應使用“
//null”
標注。
屬性(
Properties
)范例
說明
請在類中做
getter
方法、
setter
方法,方法的命名遵循
JavaBean
屬性的命名規(guī)范。
getter
方法使用“
get+
屬性名”;
setter
方法使用“
set+
屬性名”;對于返回
boolean
的
getter
,使用“
is+
屬性名”。與屬性相應的類成員變量的名字同屬性名相同。例如,上例中,屬性“
name”
相應的類成員變量是“
_name”
。屬性名使用
26
個英文字母組成。屬性的
getter
和
setter
方法應當為
public
。
方法(
Methods
)范例
說明
方法部分中,每個方法之間有一
NULL
行。一個方法的注釋中,包含這個方法的說明、參數說明、返回值說明、例外說明和
@since
(或
@deceprated
)。規(guī)定,這幾個部分在方法中存在的情況下,必須給出相應的說明。例如,假如方法有返回值,則必須給出
@return
的說明。假如方法的參數和返回值有特殊規(guī)定,一定要在注釋中寫明。例如,關于方法的
@since
和
@deceprated
參見
ClassHeader
部分。關于參數說明、返回值說明等的對齊,參見
ClassHeader
部分。關于方法聲明的縮進,參見
Class
部分。一個方法聲明為
public/protected/private
應當在設計時決定。原則上,假如沒有聲明為
protected
的理由,就聲明為
private
;一般來說,不應將方法聲明為
friendly
。方法命名應當使用動賓結構。例如“
openAccount()”
、“
save()”
、“
printMailingLabel()”
等。關于方法內部的實現(xiàn):一個方法只完畢一個特定的功能。(規(guī)定是可以用一句話描述這個方法的作用,假如用兩句、或兩句以上的話才干描述這個方法的作用,說明這個方法過于復雜。)方法內部的寫法一般地有兩種
相應的代碼舉例如下
方法內部的解決流程如下
在方法內部的注釋要寫明
Why
,而不是
What
。例
For
循環(huán)使用
i
、
j
、
k
作為循環(huán)變量。例如:對的使用空格。例如:
調整代碼風格。例如
使用
try-catch-finally
結構來
closestream
或
connection
等需要
close
的對象。這里需要注意的是,在
finallyblock
中把一個
try-catch
寫在一行中是只限于這里的特殊寫法,在其他地方不允許把兩個大括號寫在一行。
內部類(
InnerClass
)范例
說明
內部類中的變量定義、函數定義的規(guī)定和類中的規(guī)定相同。假如沒有設計上的規(guī)定,一個內部類應當被聲明為
private
。假如使用一個內部類表達枚舉類型,那么可以將它聲明為
static
。一般地,不要把一個內部類聲明為
abstract
或
final
。例子
(繼續(xù))(繼續(xù))
編碼規(guī)范
命名規(guī)范
Package
命名規(guī)范N_PKG001
Package
名要使用小寫字說明
·
因素如無特殊規(guī)定,請將
Package
名統(tǒng)一成小寫字。這是
Java
的一般規(guī)則。例
N_PKG002
Package
名要故意義說明
·
因素盡量給
Package
命名一個能聯(lián)想到
Package
內容的名字。假如使用功能
ID
、流水號等來命名
Package
的話,不能立即明白其意思。遵守此規(guī)范,將提高代碼的易讀性。例
N_PKG003
Package
名是不可省略的說明
·
因素即使
Package
名長,也請盡量不要省略,而使用易懂的名字。例
Class
命名規(guī)范N_CLS001
Class
名要能體現(xiàn)其作用說明
·
因素Class
名中,請不要使用功能
ID
、流水號等難懂的名字。
Class
名要使用故意義的字符串,以便能聯(lián)想到其
Class
的內容。這樣將提高代碼的易讀性。例
N_CLS002
Class
名中單詞的第
1
個字母要大寫說明
·
因素請大寫
Class
名的第
1
個字母。當
Class
名由多個單詞組成時,每個單詞的第
1
個字母(段落)都要大寫。這是
Java
的一般規(guī)則。例
N_CLS003
例外
Class
名的最后要加上“
Exception”說明
·
因素對例外
Class
名,請在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實驗報告:基礎生命支持(BLS)演練
- 柴油發(fā)電機考試題庫及答案
- 復旦藥理學試題庫及答案
- 2025-2026七年級美術上學期冀教版卷
- 肝衰竭肝移植術后出血防治策略
- 公司走廊衛(wèi)生制度
- 衛(wèi)生院自查工作制度
- 飼養(yǎng)場衛(wèi)生防疫制度
- 社區(qū)衛(wèi)生站服務三項制度
- 衛(wèi)生服務站診室管理制度
- 安全附件管理制度規(guī)范
- 工程轉接合同協(xié)議
- 人教版(2024)七年級上冊數學期末綜合檢測試卷 3套(含答案)
- GB/T 16770.1-2025整體硬質合金直柄立銑刀第1部分:型式與尺寸
- 工業(yè)產品銷售單位質量安全日管控周排查月調度檢查記錄表
- 2025年風險管理自查報告
- 2026年中國煤炭資源行業(yè)投資前景分析研究報告
- 項目成本控制動態(tài)監(jiān)測表模板
- DBJ46-074-2025 海南省市政道路瀝青路面建設技術標準
- 幼兒園小班語言《大一歲了》課件
- GB/T 14071-2025林木品種審定規(guī)范
評論
0/150
提交評論