成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java編程風格與命名規范整理

開發 后端
近期即將開始編碼階段,特地整理一下各方面的編程規范與命名約定,以便內部團隊風格統一。 文章大多從網絡上收集匯總而來,參考列表附在文章末尾。

基本命名規范

包命名

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

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

  1. People  
  2. TestPage  
  3. XMLExample 

 

類,接口命名

類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單詞組成,則每個單詞的首字母均應為大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由于類是設計用來代表對象的,所以在命名類時應盡量選擇名詞。

  1. People  
  2. TestPage  
  3. XMLExample 

方法名

方法的名字的***個單詞應以小寫字母作為開頭,后面的單詞則用大寫字母開頭??梢詾閯釉~或動詞+名詞組合。

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

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

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

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

  1. getDate();  
  2. length();  
  3. isReady();  
  4. toOracleFormat(); 

 

 

變量名

1.普通變量命名應該采用首字母小寫,其他字母首字母大寫的方式。

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

  1. NUM_DAYS_IN_WEEK  
  2. MAX_VALU 

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

  1. context=ctx  
  2. message=msg 

4. 通過在結尾處放置一個量詞,就可創建更加統一的變量

  1. First(一組變量中的***個)  
  2. Last(一組變量中的***一個)  
  3. Next(一組變量中的下一個變量)  
  4. Prev(一組變量中的上一個)  
  5. Cur(一組變量中的當前變量) 

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

6. 索引變量:i、j、k等只作為小型循環的循環索引變量。

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

  1. if(isClosed){  
  2. dosomeworks;  
  3. return;  

數組

總是使用以下方式定義數組:

  1. int[] arr = new int[10]; 

禁止使用C語言的是形式:

  1. 禁止  
  2. int arr[] = new int[10]; 

集合

數組或者容器推薦命名方式為名詞+s的方式,例如:

  1. List<Person> persons = getPerson();  
  2. for(Person person : persons){  
  3. dosomeworks;  

泛型

應該盡量簡明扼要(***是一個字母),以利于與普通的class或interface區分

Container中的Element應該用E表示;Map里的key用K表示,value用V;Type用T表示;異常用X表示

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

  1. public 
  2. class HashSet<E> extends AbstractSet<E> {…}  
  3.  
  4. public 
  5. class HashMap<K, V> extends AbstractMap<K, V> {…}  
  6.  
  7. public 
  8. class ThreadLocal<T> {…}  
  9.  
  10. public 
  11. interface Functor<T, X extends Throwable> {  
  12.  
  13.     T val() throws X;  
  14.  

推薦的命名

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

  1. interface Container  
  2. class ContainerImpl 

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

  1. DataNotFoundException  
  2. InvalidArgumentException 

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

  1. AbstractBeanDefinition  
  2. AbstractBeanFactory 

4. Test類***能用“Test”做為類命名的結尾

  1. ContainerTest 

5.簡稱與縮寫(不推薦使用)

  1. cp代表colorPoint  
  2.  
  3. buf代表buffer  
  4.  
  5. off代表offset  
  6.  
  7. len代表length 

除非是在循環中,否則一般不推薦使用單個字母作為變量名,不過也有例外,即約定俗成的單個字母

  1. b代表byte 
  2.  
  3. c代表char 
  4.  
  5. d代表double 
  6.  
  7. e代表Exception  
  8.  
  9. f代表float 
  10.  
  11. i, j, k代表整數  
  12.  
  13. l代表long 
  14.  
  15. o代表Object  
  16.  
  17. s代表String  
  18.  
  19. v代表某些類型的特定值 

代碼風格

花括號

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

  1. if(bool experssion){  
  2. dosomework;  

除非花括號中為空,不然任何情況下不能省略花括號,并且花括號必須換行,例如:

  1. if(i==0){  
  2. return;  
  3. }  
  4. while(true) {} 

以下寫法禁止出現:

  1. 禁止  
  2. if(i != 0return;  
  3. 禁止  
  4. if(i !=0) {return;} 

括號

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

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

空格

逗號之后緊跟一個空格。

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

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

  1. int i = a + b – c * d; 

3. 一元操作符不需要空格,for語句分號后有空格。

  1. for(int i = 0; I < 10; i++){  
  2. dosomework;  

4. 括號前后不需要空格

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

1) 常量

2) 成員變量

3) 構造函數

4) 成員函數

5) get和set方法

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

例如:

規范類模板:

  1.  class Person{  
  2.     private final static int MAX_AGE = 100;  
  3.  
  4.     private String firstname = “Jack”;  
  5.  
  6.     public Person(){}  
  7. public Person(String firstname){  
  8.     this.firstname = firstname;  
  9. }  
  10.  
  11. public void doExercise(){  
  12.     dosomeworks;  
  13.     run();  
  14. }  
  15. private void run(){  
  16.     dosomeworks;  
  17. }  
  18.  
  19. public getFirstname(){  
  20.     return firstname;  
  21. }  
  22. public setFirstname(String firstname){  
  23.     this.firstname = firstname;  
  24. }  

2.構造函數

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

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

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

3.使用成員變量

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

4.方法

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

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

Javadoc注釋

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

參考文檔

  1. Java命名規范  
  2.  
  3. http://java.chinaitlab.com/base/834496.html  
  4.  
  5. Java代碼規范  
  6.  
  7. http://www.doc88.com/p-733474983375.html  
  8.  
  9. java應用命名規范  
  10.  
  11. http://home.51.com/renjanely/diary/item/10051465.html  
  12.  
  13. 【J2SE系列】Java命名規范  
  14.  
  15. http://my.oschina.net/iblike/blog/34100\  
  16.  
  17. 開發筆記:Java命名規范  
  18.  
  19. http://blog.donews.com/maverick/archive/2005/10/12/585459.aspx 

 

原文鏈接:http://www.cnblogs.com/coolhwm/archive/2012/03/22/2411811.html

【編輯推薦】

  1. 淺談Java中的幾種隨機數
  2. Java編程中“為了性能”盡量要做的幾點
  3. 告別無止境的增刪改查:Java代碼生成器
  4. CoffeeScript和Node函數式JavaScript編程
  5. 使用JNI進行混合編程:在Java中調用C/C++本地庫
責任編輯:林師授 來源: coolhwm的博客
相關推薦

2009-08-27 16:30:08

C#編程命名規范

2009-08-03 16:57:42

ASP.NET編程規范

2015-09-22 10:04:38

GoogleJava編程

2009-05-22 11:01:53

C++JavaC#

2011-07-22 17:14:53

java

2020-04-16 21:02:35

前端命名規范html規范

2016-05-17 14:03:07

Android命名解決方案

2023-11-22 08:00:56

Go命名規范

2017-01-12 14:55:50

JavaScript編程

2012-03-20 10:09:27

JavaBean

2010-09-07 15:53:02

CSS規范化

2009-07-31 18:18:33

Camel命名法C#命名規范

2022-11-28 08:15:14

Go語言代碼

2022-12-05 09:32:29

Go 語言風格規范

2009-08-21 08:52:40

C#語言命名

2009-08-13 13:38:30

C#命名規范

2013-07-10 11:32:57

編碼風格

2017-02-13 13:14:07

2009-08-19 15:24:30

.NET命名規范

2022-08-02 07:48:06

容器鏡像版本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美色综合一区二区三区 | 伊人导航 | 第一av| 亚洲麻豆 | 欧美中文字幕一区二区 | 91久久夜色精品国产网站 | av手机免费在线观看 | 综合久久99 | 久久亚洲天堂 | 亚洲精品国产电影 | 精品久久久久久18免费网站 | 色伊人 | 国产九一精品 | 在线视频中文字幕 | 女朋友的闺蜜3韩国三级 | 超碰91在线 | 91久久精品国产91久久性色tv | 久久综合一区二区三区 | 99精品久久久久久久 | 日韩成人在线播放 | 国产一区二区三区在线看 | 九九激情视频 | 日本一区二区三区免费观看 | 中文字幕第一页在线 | 少妇性l交大片免费一 | 天天干天天爱天天爽 | 成在线人视频免费视频 | 久久亚洲一区 | 亚洲国产一区二区视频 | 亚洲欧美激情精品一区二区 | 欧美不卡视频 | 国产传媒毛片精品视频第一次 | 亚洲美女视频 | 黑人巨大精品欧美一区二区免费 | 国产精品久久久久久久久图文区 | 国产免费拔擦拔擦8x高清 | 一区二区视频 | 日韩激情视频一区 | 久久久久久国产精品免费免费 | 久草中文在线 | 午夜在线免费观看视频 |