1. 程式人生 > >JAVA書寫規範、命名規範

JAVA書寫規範、命名規範

書寫規範

  1. 花括號不要單獨一行,和它前面的程式碼同一行。而且,花括號與前面的程式碼之間用一個空格隔開。
    public void method() { // Good 
     
    } 
     
    public void method()
    { // Bad
    }  
     
    public void method(){ // Bad
     
    }

  2. if、else、for、switch、while等邏輯關鍵字與後面的語句留一個空格隔開。
    // Good
    if (booleanVariable) {
        // TODO while booleanVariable is true
    } else {
        // TODO else
    }
     
    // Bad
    if(booleanVariable) {
        // TODO while booleanVariable is true
    }else {
        // TODO else
    }
  3. 運算子兩邊各用一個空格隔開。
    int result = a + b; //Good, = 和 + 兩邊各用一個空格隔開
    int result=a+b; //Bad,=和+兩邊沒用空格隔開
  4. 方法的每個引數之間用一個空格隔開。
    public void method(String param1, String param2); // Good,param1後面的逗號與String之間隔了一個空格
    method(param1, param2); // Good,方法呼叫時,param1後面的逗號與param2之間隔了一個空格
    method(param1,param2); // Bad,沒有用個空格隔開


  5. 空行的使用

    將邏輯相關的程式碼段用空行隔開,以提高可讀性。空行也只空一行,不要空多行。在以下情況需用一個空行:
    兩個方法之間
    方法內的兩個邏輯段之間
    方法內的區域性變數和方法的第一條邏輯語句之間
    常量和變數之間

  6. 當一個表示式無法容納在一行內時,可換行顯示,另起的新行用8個空格縮排。
    someMethod(longExpression1, longExpression2, longExpression3,  
            longExpression4, longExpression5);


  7. 一行宣告一個變數,不要一行宣告多個變數,這樣有利於寫註釋。
    private String param1; // 引數1
    private String param2; // 引數2


  8. 一個方法最多不要超過40行程式碼。

  9. 範圍型的常量用列舉類定義,而不要直接用整型或字元,這樣可以減少範圍值的有效性檢查。
    // 用列舉類定義,Good
    public enum CouponType {
        // 現金券
        @SerializedName("1")
        CASH,
     
        // 抵用券
        @SerializedName("2")
        DEBIT,
     
        // 折扣券
        @SerializedName("3")
        DISCOUNT
    }
     
    // 用整型定義,Bad
    public static final int TYPE_CASH = 1; // 現金券
    public static final int TYPE_DEBIT = 2; // 抵扣券
    public static final int TYPE_DISCOUNT = 3; // 折扣券

  10. 水平對齊:不做強制要求
    private  int  x ;     // this is fine
    private  Color  color ;    // this too
     
    private  int       x ;            // permitted, but future edits
    private  Color  color ;      // may leave it unaligned
命名規範
  1. 包命名
    包名全部用小寫字母,通過 . 將各級連在一起。不應該使用下劃線。
    com.shaonaozu.application

  2. 類和介面的命名
    型別的命名,採用以大寫字母開頭的大小寫字元間隔的方式(UpperCamelCase)。
    class命名一般使用名詞或名詞短語。interface的命名有時也可以使用形容詞或形容詞短語。

    測試類的命名,應該以它所測試的類的名字為開頭,並在最後加上Test結尾。例如:HashTest 、 HashIntegrationTest。

  3. 方法的命名
    方法命名,採用以小寫字母開頭的大小寫字元間隔的方式(lowerCamelCase)。
    方法命名一般使用動詞或者動詞短語。

    初始化方法,命名init開頭,比如:initView
    按鈕點選方法,命名以to開頭,比如:toLogin
    設定方法,以set開頭,比如:setData
    具有返回值的獲取方法,以get開頭,比如:getData
    通過非同步載入資料的方法,以load開頭,比如:loadData
    布林型的判斷方法,以is或has,或具有邏輯意思的單詞如equals,例如:isEmpty
    新增資料,以add開頭,例如:addData
    修改資料,以modify開頭,例如:modifyData
    刪除資料,以delete開頭,比如:deleteData

  4. 常量命名
    常量命名,全部使用大寫字元,詞與詞之間用下劃線隔開。(CONSTANCE_CASE)。
    常量一般使用名詞或者名詞短語命名。

    static final int NUMBER =5;
    static final SomeEnum { ENUM_CONSTANT }


  5.  非常量的成員變數名
    非常量的成員變數命名(包括靜態變數和非靜態變數),採用lowerCamelCase命名。
    一般使用名詞或名詞短語。

  6. 引數名
    引數命名採用lowerCamelCase命名。
    應該避免使用一個字元作為引數的命名方式。

  7. 區域性變數名
    區域性變數採用lowerCamelCase命名。它相對於其他型別的命名,可以採用更簡短寬鬆的方式。
    但即使如此,也應該儘量避免採用單個字母進行命名的情況,除了在迴圈體內使用的臨時變數。
     
    即使區域性變數是final、不可改變的,它也不能被認為是常量,也不應該採用常量的命名方式去命名。

  8. 靜態成員的訪問:應該通過類,而不是物件
    當一個靜態成員被訪問時,應該通過class名去訪問,而不應該使用這個class的具體例項物件。
    class Foo {
        static aStaticMethod() {
    
        }
    }
    
    Foo aFoo = ...;
    Foo.aStaticmethod(); //good
    aFoo.aStaticmethod(); //bad


Javadoc
  1. 通用格式
    /**
     * Multiple lines of Javadoc text are written here
     * wrapped normally ...
     */
    public int method(String p1) {...}
    或單行格式
    /** An especially short bit of javaodc */
  2. 段落

    空白行:是指javadoc中,上下兩個段落之間只有上下對齊的 * 字元的行。每個段落的第一行在第一個字元之前,有一個<p>標籤,並且之後不要有任何空格。
    /**
     * Multiple lines of Javadoc text are written here
     * <p>wrapped normally ...</p>
     */
    public int method(String p1) {...}
  3. @從句
    所有標準的@從句,應該按照如下的順序新增:@param、@return、@throws、@deprecated。並且這四種@從句,不應該出現在一個沒有描述的Javadoc塊中。
    當@從句無法在一行寫完時,應該斷行。延續行在第一行的@字元的位置,縮排至少4個字元單位。
    /**
     * @param model 描述描述描述描述描述描述描述
     *     描述描述描述描述描述
     * @param request
     * @return
     * @throws
     * @deprecated
     */


  4. 何處應該使用Javadoc
    至少,Javadoc應該應用於所有的public類、public和protected的成員變數和方法。和少量例外的情況。例外情況如下。

    例外:方法本身已經足夠說明的情況
    當方法本身很顯而易見時,可以不需要javadoc。例如:getFoo。沒有必要加上javadoc說明“Returns the foo”。
    單元測試中的方法基本都能通過方法名,顯而易見地知道方法的作用。因此不需要增加javadoc。
     
    注意:有時候不應該引用此例外,來省略一些使用者需要知道的資訊。例如:getCannicalName 。當大部分程式碼閱讀者不知道canonical name是什麼意思時,不應該省略Javadoc,認為只能寫/** Returns the canonical name. */ 。

    例外:過載方法
    過載方法有時不需要再寫Javadoc。





相關推薦

JAVA書寫規範命名規範

書寫規範 花括號不要單獨一行,和它前面的程式碼同一行。而且,花括號與前面的程式碼之間用一個空格隔開。public void method() { // Good } public voi

java(android)命名規範

cmt access ESS 淡出 模塊名 小寫 共享 子類 pwd 在講解命名規範前,先初略介紹下當前主要的標識符命名法和英文縮寫規則。標識符命名法標識符命名法最要有四種:1 駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其余所有單詞的第一個字母大寫。2 帕斯卡

JAVA註釋和變數命名規範

Java註釋 單行註釋://內容 多行註釋:/* 內容 */ 文件註釋:/** 內容 */ 命名 駝峰命名法 小駝峰:用於方法名,普通變數名稱 若識別符號是由單個單片語成,則全小寫。eg:int age = 10; 若識別符號是由多個單片語成,則第一個單詞小寫

Java常量宣告及命名規範

常量:被final修飾的變數,初始化一次後,就不能再次被賦值! 命名規範:大寫字母和下劃線(JING_DONG) package com.constanttest; public class ConstantTest { // final static int MA

前端開發規範命名規範html規範css規範js規範

在學習程式設計的時候,每次看到那些整齊規範的程式碼,心裡頓時對這個程式設計師表示點點好感,有時,比如看到自己和朋友寫的程式碼時,那閱讀起來就是苦不堪言,所以,一些基本的開發規範是必須的,是為了自己方便閱讀程式碼,也方便他人閱讀修改程式碼。 命名

JavaScript var關鍵字變數的狀態異常處理命名規範等介紹

  本篇主要介紹var關鍵字、變數的undefined和null狀態、異常處理、命名規範。 目錄 1. var 關鍵字:介紹var關鍵字的使用。 2. 變數的狀態:介紹變數的未定義、已定義未賦值、已定義已賦值 三種狀態。 3. JS異常:介紹對JS異常的處理。 4. 命名規範:介紹Js的基本命名規範

前端開發規範命名規範html規範css規範js規範

本文首發於我的個人網站:http://cherryblog.site/ (背景更換了不知道大家有沒有發現呢,嘻嘻) 一個好的程式設計師肯定是要能書寫可維護的程式碼,而不是一次性的程式碼,怎麼能讓團隊當中其他人甚至一段時間時候你再看你某個時候寫

MySql設計使用命名規範

最近在看MySQL相關的內容,整理如下規範,作為一名剛剛學習MySQL的菜鳥,整理的內容非常的基礎,中間可能涉及到有錯誤的地方,歡迎批評指正,看到有錯誤的地方期望看官留言。 資料庫環境 dev:開發環境,開發可讀寫,可修改表結構。開發人員可以修改表結構,可以隨意修改其

淺談Android編碼規範命名規範

event err class wrap spa for循環 who 全局變量 經典 原文:淺談Android編碼規範及命名規範前言:   目前工作負責兩個醫療APP項目的開發,同時使用LeanCloud進行雲端配合開發,完全單挑。   現大框架已經完成,正在進行細節模

[轉載] Python程式碼規範命名規範

http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python程式碼規範和命名規範 前言 Python 學習之旅,先來看看 Python 的程式碼規範,讓自己先有個意識,而且在往後的學習中慢慢養成習慣

IOS編碼規範命名規範

⼀一.命名規則 命名總則: 1.使⽤用駝峰法命名,命名清晰明瞭,要做到⾃自描述,不能省略,部分cocoa通 ⽤用縮略詞能夠縮寫。 Objective – C不⽀支援名字名稱空間,所以某些命名要加項⺫⽬目字首區別。 需要加字首的地⽅方: 全域性變數,類名,全域性函式,categ

python編碼規範命名規範

編碼規範 不要在行尾加分號, 也不要用分號將兩條命令放在同一行. 每行不超過80個字元,Python會將圓括號, 中括號和花括號中的行隱式的連線起來 , 你可以利用這個特點. 如果需要, 你可以

前端開發規範命名規範

HTML: 1.單標記標籤統一加/結尾 2.所有跟資料有關的按鈕都用input 3.定位屬性要寫全,為0不省略 4.給有事件的元素統一加類 5.單獨模組用section包起來,class是模組名 6.導航,footer單獨之外,其餘的儘量用一個大的容

C++編碼規範(2):命名規範

 如果你程式碼中的變數名,函式數,類名都取得很好,不僅是個有意義的詞或短語,而且確切的表達了該變數或函式的功能.那讀起程式碼來就像看文章一樣,絕對是一種享受.當然理想是美好的,現實可是殘酷的.很少有人能做到這樣.一來嘛你英語詞彙量得多,不樣不容易找到那麼多合適並貼切的

Python程式碼規範命名規範

1、程式碼規範 1、編碼 如無特殊情況, 檔案一律使用 UTF-8 編碼 如無特殊情況, 檔案頭部必須加入#-*-coding:utf-8-*-標識 2、格式 2.1、縮排 統一使用 4 個空格進行縮排 2.2、行寬 每行程式碼儘量不超過 80 個字元(在

命名規範及部分書寫規範----參照阿裏巴巴java開發手冊

實現類 toc tcpudp size 全部 sla 工具類 apr alibaba 只列一些我能看懂的.... 1類名使用 UpperCamelCase 風格,必須遵從駝峰形式,但以下情形例外:DO / BO / DTO / VO / AO   正例:MarcoPolo

Java命名註釋規範

一、命名規範 1、 專案名全部小寫 2、 包名全部小寫 3、 類名首字母大寫,如果類名由多個單片語成,每個單詞的首字母都要大寫。 如:public class MyFirstClass{} 4、 變數名、方法名首字母小寫,如果名稱由多個單片語成,每個單詞的首字母都要大寫。 如:int index=

<轉>CSS書寫規範順序(推薦)

anim 輸入 head center ase 顏色 表示 基本 合作 CSS書寫順序 1.位置屬性(position, top, right, z-index, display, float等) 2.大小(width, height, padding, margin) 3

Java項目命名規範

lob 標簽 接口 servle 一個數 大寫 命名規範 組成 所在 1、 項目名全部小寫 2、 包名全部小寫 3、 類名首字母大寫,一般都是使用駝峰式命名。 4、變量名、方法名首字母小寫,如果名稱由多個單詞組成,每個單詞的首字母都要大寫。 5、 常量名全

Java命名規範

Ltd. 數字 背景 方法名 類註釋 ava oid 命名 bgcolor 一、命名規範 1、 項目名全部小寫 2、 包名全部小寫 3、 類名首字母大寫,如果類名由多個單詞組成,每個單詞的首字母都要大寫。 如:public class MyFirstClass{} 4、 變