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

歡迎訪問 生活随笔!

生活随笔

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

java

Java命名规范和代码风格

發布時間:2023/12/10 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java命名规范和代码风格 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java命名規范和代碼風格


基本命名規范

???? 包命名

  包名按照域名的范圍從大到小逐步列出,恰好和Internet上的域名命名規則相反。

  由一組以.”連接的標識符構成,通常第一個標識符為符合網絡域名的兩個或者三個英文小寫字母。

??????? 例:cn.edu.xupt.JavaTest

???? 類,接口命名

??????? 類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單詞組成,則每個單詞的首字母均應為大寫例如TestPage;

??????? 如果類名稱中包含單詞縮寫,則這個縮寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由于類是設計用來代表對象的,所以在命名類時應?盡量選擇???? 名詞。

  例:People?TestPage?XMLExample

???? 方法名

  方法的名字的第一個單詞應以小寫字母作為開頭,后面的每個單詞則用大寫字母開頭。可以為動詞或動詞+名詞組合。

  設置/獲取某個值的Method,應該遵循setV/getV規范

  返回長度的Method,應該命名為length

  測試某個布爾值的Method,應該命名為isV

  將對象轉換為某個特定類型的Mehod應該命名為toF

  例:getDate();?length();?isReady();?toOracleFormat();

 ? 變量名

??????? 1.普通變量命名應該全部采用小寫字母。

??????? 2.final?static變量的名字應該都大寫,并且指出完整含義,類似于c語言里的宏定義。如果一個常量名稱由多個單詞組成,則應該用下劃線來分割這些單詞如。

  例:NUM_DAYS_IN_WEEK?MAX_VALU

  3.?如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性

??????? 例:context=ctx?message=msg

  4.?無論什么時候,均提倡應用常量取代數字、固定字符串。也就是說,程序中除01以外,盡量不應該出現其他數字。

  5.索引變量:ijk等只作為小型循環的循環索引變量。

  6.?邏輯變量:避免用flag來命名狀態變量,用is來命名邏輯變量。

??????? 例:

???????? if(isClosed){?

?????????????? dosomeworks;?

?????????????? return;?

???????? }

???? 集合

?????? 數組或者容器推薦命名方式為名詞+s的方式

?????? 例:

????????? List?persons?=?getPerson();?

???????????? for(Person?person?:?persons){?

?????????????????? dosomeworks;?

???????????? }

???? 泛型

??????? 應該盡量簡明扼要(最好是一個字母),以利于與普通的classinterface區分

??????? Container中的Element應該用E表示;

??????? Map里的keyK表示,valueV;

??????? TypeT表示;

??????? 異常用X表示如果需要接收多個Type類型的參數,應該用鄰接T的大寫字母——例如S——來依次表示,當然也可以用T1,?T2這樣的方式

??????? 例:

??????? public?class?HashSet?extends?AbstractSet?{

???????????? …

?????? }

?????? public?class?HashMap<k,?v="">?extends?AbstractMap<k,?v="">?{

???????????? …

?????? }??

?????? public?class?ThreadLocal?{

???????????? …

?????? }?

?????? public?interface?Functor<t,?throwable=""?extends=""?x="">?{

?????????????? T?val()?throws?X;?

?????? }

推薦的命名

  1.當要區別接口和實現類的時候,可以在類的后面加上“Impl”

  例:interface?Container?class?ContainerImpl

  2.Exception類最好能用“Exception”做為類命名的結尾

  例:DataNotFoundException?InvalidArgumentException

  3.抽象類最好能用“Abstract”做為類命名的開頭

  例:AbstractBeanDefinition?AbstractBeanFactory

  4.?Test類最好能用“Test”做為類命名的結尾

??????? 例:ContainerTest

代碼風格

 花括號

  花括號統一采用以下格式:

??????? if(bool?experssion){?

????????????? dosomework;?

???????? }

???????? 除非花括號中為空,不然任何情況下不能省略花括號。

???????? 例如:

???????? if(i==0){?

??????????????? return;?

???????? }

????????? while(true){

????????? }

  以下寫法禁止出現:??

??????? 禁止

???????? if(i?!=?0)?

????????????? return;?

??????? 盡量不要

??????? if(i?!=0)?

??????? {

???????????? return;

??????? }

 圓括號

  括號的前,后一個字符不需要空格,例如:

  Person?p?=?new?Person(“Jack”,?17);

 空格

  1.逗號之后緊跟一個空格。

???????? Person?p?=?new?Person(“Jack”,?16,?“China”);

???????? 2.圓括號里的分號后跟空格

???????? for(int?i?=?0;?I?<?10;?i++){

?????????????? dosomework;?

???????? }

  3. 二元操作符前后跟空格。

  int?i?=?a?+?b?–?c?*?d;

  4.?一元操作符不需要空格。

??????? for(int?i?=?0;?I?<?10;?i++){

????????????? dosomework;?

??????? }

  5.?括號前后不需要空格

 類

  類的定義結構按照順序為:

  1)?常量

  2)?成員變量

  3)?構造函數

  4)?成員函數

  5)?getset方法

  各個部分之間留出一個空行。

  例如:

  規范類模板:

??????? 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;?

?????????????? }

??????? }

 構造函數

  1)?參數為空的構造函數出現在最上方

  2)?有調用關系的構造函數相鄰

  3)?參數盡量由少到多從上至下排序

 使用成員變量

  在類的方法內引用成員變量除了命名沖突以外,不使用this。非特殊情況在類的方法內都不使用getset方法存取成員變量。

 方法

  有調用關系的方法盡量放在相鄰的位置,publicprivate方法可以交叉放置。

 ?? getset方法,所有需要公開的成員變量都要符合良好的javabean規范,提供getset方法,盡量使用IDE工具自動生成。

Javadoc注釋

  在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之后在主程序中可以為每個類、接口、方法、字段添加?Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、接口、方法、字段所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句話后面可以跟?隨更加詳細的描述段落。在描述性段落之后還可以跟隨一些以Javadoc注釋標簽開頭的特殊段落,例如上面例子中的@auther@version,這?些段落將在生成文檔中以特定方式顯示

?? ?? ?

轉載于:https://www.cnblogs.com/csdndreamer/p/5490651.html

總結

以上是生活随笔為你收集整理的Java命名规范和代码风格的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。