日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

标准的Java编码规范手册

發(fā)布時間:2023/12/10 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 标准的Java编码规范手册 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ?編碼規(guī)范體現(xiàn)出一個開發(fā)者的基本素質(zhì),良好的編碼規(guī)范可以提高團隊編碼的效率,避免很多不必要的問題。今天分享一個標準的Java編碼規(guī)范給大家,希望對于大家今后的開發(fā)工作帶來幫助。

編碼規(guī)范的意義
? ? ? ?在項目開發(fā)維護中,編碼規(guī)范作為開發(fā)規(guī)范的一個組成部分,是十分重要和必須的,它不僅僅是為了提高開發(fā)效率,也有利于降低后期維護開發(fā)的成本。編碼規(guī)范的根本目的就是要讓不僅代碼可以一目了然,也可以很容易的理解開發(fā)人員所編寫的代碼程的用途和意義。由此,用來減少項目中因為開發(fā)維護人員的更替或由于長時間不維護造成的記憶模糊或混亂等情況帶來的對代碼所實現(xiàn)的真正功能的理解困難和歧義。另外也提高了代碼復查效率和效果。

規(guī)范實施建議
? ? ? ?不是為了規(guī)范而規(guī)范,以提高軟件開發(fā)質(zhì)量和效率為目標,輔以IDE等開發(fā)工具為保障,逐步改進編碼規(guī)范化水平
? ? ? ?對于格式規(guī)范、注釋規(guī)范等部分規(guī)范的要求,可以通過使用eclipse/AndroidStudio自帶的Format方法(快捷鍵:Ctrl+Shift+F)進行自動格式化,可以提高開發(fā)效率又符合編碼規(guī)范。
? ? ? ?編碼規(guī)范文檔本身需要定期不斷的修正和完善,以符合實際開發(fā)規(guī)范的要求。

格式規(guī)范

a)縮進
使用配置文件進行格式化:
配置文件中一個TAB等于4個空格。

b)行長度
每行100字符
注: 使用eclipse自帶的Format方法(快捷鍵:Ctrl+Shift+F)時,需要配置“Maximum line width”設置長度為100

c)聲明

d)聲明變量、常量
一行只聲明一個變量或常量;
在代碼塊的開始處聲明實例變量,不要在首次用到該變量時才聲明【推薦】

e)聲明類
左大括號”{“位于聲明語句同行的末尾,右大括號”}”另起一行;
方法與方法之間以空行分隔

f)語句
可以使用eclipse自帶的Format方法(快捷鍵:Ctrl+Shift+F)時 使用eclipse默認的“Control Statements ”格式化方法進行
注:if語句總是用”{“和”}”括起來
示例

class Example {void bar() {do {} while (true);try {} catch (Exception e) {} finally {}}void foo2() {if (true) {return;}if (true) {return;} else if (false) {return;} else {return;}} }

g)空格的使用

等號左右必須各有一個空格:
button = null;
雙目運算符左右必須各有一個空格:
imageWidth = imagePadding + imageSize;
標點符號后面必須跟一個空格
標點符號包括“,”、“;”等,下面列出幾個例子。
一行定義多個變量時,“,”后跟空格:
int i, j;
在for循環(huán)中,“;”后跟空格:
for (int i = 0; i < count; ++i)
在有多個入口參數(shù)的函數(shù)調(diào)用中,“,”后跟一個空格:
addContentView(view, params);

h)變量類型的使用
編程的過程中盡量使用接口編程,而少用類編程。
如:

List<String> names = new ArrayList<String>();

命名規(guī)范

通用規(guī)則
? ? ? ?命名規(guī)范使程序更易讀,從而更易于理解。它們也可以提供一些有關標識符功能的信息,以助于理解代碼,例如,不論它是一個常量,包,還是類。

? ? ? ?包(Packages) 一個唯一包名的前綴總是全部小寫的ASCII字母并且是一個頂級域名,通常是com,edu,gov,mil,net,org,或1981年ISO 3166標準所指定的標識國家的英文雙字符代碼。包名的后續(xù)部分根據(jù)不同機構(gòu)各自內(nèi)部的命名規(guī)范而不盡相同。這類命名規(guī)范可能以特定目錄名的組成來區(qū)分部門(department),項目(project),機器(machine),或注冊名(login names)。
如:

package com.itotem.view package com.itotem.utils.xxxx

? ? ? ?類(Classes) 命名規(guī)則:類名是個一名詞,采用大小寫混合的方式,每個單詞的首字母大寫。盡量使類名簡潔而富于描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)
如:

public class Button public class EditText

? ? ? ?接口(Interfaces) 命名規(guī)則:接口類名以大寫“I”開頭,大小寫規(guī)則與類名相似,
如:

public interface IProjGroupService

? ? ? ?方法(Methods) 方法名是一個動詞,采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫。
如:

public void onCreate(Bundle savedInstanceState) public void run()

? ? ? ?局部變量(Local Variables) 采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫。變量名應簡短且富于描述。變量名的選用應該易于記憶,即,能夠指出其用途。盡量避免單個字符的變量名,除非是一次性的臨時變量。臨時變量通常被取名為i,j,k,m和n,它們一般用于整型。c,d,e,它們一般用于字符型,變量名不應以下劃線或美元符號開頭。
如:

int i = 0; float imageWidth = 0;

? ? ? ?實例變量(Instance Variables) 大小寫規(guī)則和類名相似,除了前面需要一個m。
如:

private int mEmployeeId = 0;private String mName = "";

? ? ? ?若實例變量為public類型的則和局部變量采用相同的命名規(guī)則。
如:

public int width = 0;public String contactName = "";

? ? ? ?常量(Constants [采用stiatc final 修飾]) 類常量的聲明,應該全部大寫,單詞間用下劃線隔開。(類似C語言的宏定義)。
如:

private static final int MIN_WIDTH = 4; private static final int MAX_WIDTH = 999;

? ? ? ?資源id 資源id全部采用小寫,單詞之間用下劃線隔開。

? ? ? ?注意:這個小寫規(guī)范是Android強制執(zhí)行的,如果出現(xiàn)大寫或者特殊字符工程是不能編譯的。會報錯
如:

downloadapp_namecall_log_type

備注(Remark)
? ? ? ?所有的標識符名稱要求取有意義的單詞,不能使用myXXXX和button01等風格的名稱。

附加說明
1、從命名中可以直觀看懂其定義和用途,否則必須增加注釋說明;
2、在同一系統(tǒng)內(nèi)命名必須保持統(tǒng)一;避免出現(xiàn)類似示例中的情況;
示例:項目組id 變量定義:pgid、projectgroupId、idprojectgroup、idProjGroup
3、避免名字過長、命名采用英文縮寫,避免使用漢語拼音【推薦】

組織規(guī)范

? ? ? ?引入包規(guī)范
? ? ? ?不允許引入類中未使用的包;
? ? ? ?引入包時不能直接引入“.*”,必須明確到引入的類名
? ? ? ?可以通過快捷鍵引入包。Ctrl+Shift+O;

注釋規(guī)范

a)通用注釋規(guī)則

b)說明
? ? ? ?注釋要精簡并清晰容易理解;
? ? ? ?保持注釋與代碼同步。
? ? ? ?代碼質(zhì)量不好但能正常運行,或者還沒有實現(xiàn)的代碼用 //TODO:任務 ;
? ? ? ?存在錯誤隱患的代碼用 //FIXME:聲明;
? ? ? ?對于不建議使用(廢棄)的類或者方法,必須在他們的注釋中增加 @deprecated

c)javadoc注釋標簽語法定義說明
? ? ? ?@author 對類的說明 標明開發(fā)該類模塊的作者
? ? ? ?@version 對類的說明 標明該類模塊的版本
? ? ? ?@see 對類、屬性、方法的說明 參考轉(zhuǎn)向,也就是相關主題
? ? ? ?@param 對方法的說明 對方法中某參數(shù)的說明
? ? ? ?@return 對方法的說明 對方法返回值的說明
? ? ? ?@exception 對方法的說明 對方法可能拋出的異常進行說
? ? ? ?@deprecated 對類或方法的說明 該類或方法不建議使用

d)類的注釋
目的:簡單概述該類作用

范圍:所有java類,可以不包括javabean

書寫規(guī)范:類的注釋必須寫在該類的聲明語法之前。在注釋中要描述該類的描述,創(chuàng)建者,創(chuàng)建日期。

類注釋模板:可以通過eclipse配置(Code Templates 中的 Code 的New Java files)

${filecomment} ${package_declaration}/*** Title: ${project_name}<br>* Description: <br>* Copyright: Copyright (c) ${year} <br>* Create DateTime: ${date} ${time} <br> * @author perry.li*/ ${typecomment} ${type_declaration}

類注釋示例:

package cn.sh.sstic.projectmanagement.projectfeasibleschemaeval; /*** Title: mwbas2008<br>* Description: 可行性方案套數(shù)數(shù)組定義類<br>* Create DateTime: Oct 6, 2008 4:41:03 PM <br> * @author perry.li*/ public class FormUtil {

e)方法的注釋

? ? ? ?目的:簡要概述該方法的功能,包括其參數(shù)、返回值意義的注釋

? ? ? ?范圍:java類中的各種方法
? ? ? ?注:接口的實現(xiàn)方法的注釋應寫在接口中而不是實現(xiàn)代碼中;
? ? ? ?對自動生成的get/set方法不需要添加注釋;
? ? ? ?如果方法允許null作為參數(shù),或者允許返回值為null,必須在JavaDoc中說明,如果沒有說明,方法的調(diào)用者不允許使用null作為參數(shù),并認為返回值是null 安全的。

? ? ? ?書寫規(guī)范:方法注釋必須寫在方法定義之前。該注釋包括:方法其功能的簡單 描述,方法的參數(shù)、返回值類型、返回值意義簡單的描述。

? ? ? ?模板:對于已定義好的接口的方法,可以直接輸入 /**回車 eclipse可自動生成注釋模板

示例:

/*** 演示方法注釋* @param args* @return* 返回 null 表示沒有找到* @throws Exception*/private String[] demoFunction(String args) throws Exception{return null;}

f)失效代碼塊的注釋
? ? ? ?目的:對一塊暫時不啟用的代碼進行注釋。
? ? ? ?注:這里并不是指垃圾、無用的代碼,只是暫時不啟用或暫時不明確的代碼

? ? ? ?書寫規(guī)范:失效代碼塊采用塊注釋方法行注釋方法進行標注。
? ? ? ?注:采用注釋塊在 使用eclipse自帶的Format方法(快捷鍵:Ctrl+Shift+F)時需要配置,去掉選中 “Enable block commnet formatting”

示例:

// if (1==1) {// // } else {//// }

或者

/* if (1 == 1) {// 如果1與1相等的時候String code1;} else {// 如果1與1不相等的時候String code2;}*/

g)分支語句的注釋
目的:簡單描述該分支條件的意義

書寫規(guī)范:在分支語句代碼的下一行進行注釋

示例:

if (1==1) {//如果1與1相等的時候code} else {//如果1與1不相等的時候code}

h)變量、常量的注釋
? ? ? ?目的:簡單描述該變量、常量的意義。
? ? ? ?書寫規(guī)范:變量、常量注釋必須寫在變量、常量定義之前或同一行中,簡單描述其代表的意義。
? ? ? ?注:對自循環(huán)所用的變量(i,j,k,)可以不需要注釋。
示例:

String commitFlag; //提交標志 i)@Override的使用 所有的重寫方法,在方法開始加上 @Override 關鍵字。

如:

@Override public void onCreate(Bundle savedInstanceState) { }

異常處理規(guī)范

? ? ? ?重新拋出的異常必須保留原來的異常,即throw new NewException(“message”, e); 而不能寫成throw new NewException(“message”),更不能不繼續(xù)往上層拋出異常。
? ? ? ?針對重要的可捕獲的業(yè)務相關異常,需創(chuàng)建異常處理類,在方法中捕獲到異常后,反饋到用戶界面上,提示用戶【推薦】

補充規(guī)范

? ? ? ?代碼在提交版本控制之前,請確保已清除不必要的log調(diào)試語句
? ? ? ?明確的垃圾或無用代碼必須刪除

安卓開發(fā)高級技術交流QQ群:108721298 歡迎入群

微信公眾號:mobilesafehome

(本公眾號支持投票)

總結(jié)

以上是生活随笔為你收集整理的标准的Java编码规范手册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。