<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    FreeMan

    Java是條不歸路……

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      4 隨筆 :: 1 文章 :: 2 評論 :: 0 Trackbacks

    JAVA書寫規(guī)范

    (這條文章已經(jīng)被閱讀了364次) 時間:2002年03月08日 18:59 來源:韓偉 原創(chuàng)-IT

    1. 命名

    1.1 Package的名字由一個小寫單詞組成;

    一個特有的包的名字的第一部分總是全部使用小寫字母,

    并應(yīng)該是頂級域名中的一個,現(xiàn)在有com, edu, gov, mil, net, org,

    或者是在ISO標準3166,1981中定義的兩個字母的國家標識。

    這樣的規(guī)則可確定某一目錄分開的組件,部門,項目,或登陸名

    com.sun.eng , com.apple.quicktime.v2 ,org.apache.catalina

     

    1.2 Class/Interface:大寫字母開頭而其他字母都小寫;

    類的名字應(yīng)是名詞,混合大小寫,每個詞的第一個字母大寫。

    盡量保證你的類的名字簡單并是描述性的。使用完整的單詞-避免

    頭字語和縮寫(除非縮寫比長的格式更廣泛使用,例如URL or HTML)

    class ImageSprite , interface RasterDelegate

     

    1.3 方法應(yīng)是動詞,混合大小寫,第一個字母小寫,每個內(nèi)部的詞

    的第一個字母大寫;除了變量,所有的實例、類和類的常量都

    是以小寫字母開頭的混和大小寫。內(nèi)部的詞以大寫字母開頭。

    變量名字不應(yīng)以下劃線或美元符$開始,盡管二者都是允許的。

    run() ,runFast() , getBackground()

     

    1.4 變量名字應(yīng)簡短但有意義。變量名字的選擇應(yīng)該是可記憶

    的---就是說給普通的人指出它的使用的目的,除非是臨時的。臨時變

    量的一般的名字對于整形變量是i,j,k,m,和n,對于字符是c,d,和e。

    int i;

    char c;

    float myWidth;

     

    1.5 常量:聲明類常量的變量和ANSI常量的名字為下劃線分開的

    大寫字母單詞(應(yīng)避免ANSI常量,除非為了調(diào)試)

    static final int MIN_WIDTH = 4;

    static final int MAX_WIDTH = 999;

     

     

    2. 文件

    2.1 開頭:注釋(name,version,date,copyright),package,import;

    /*

    * Classname

    *

    * Version information

    *

    * Date

    *

    * Copyright notice

    */

    package java.awt;

    import java.awt.peer.CanvasPeer;

     

    2.2 Class/Interface:JavaDoc文檔注釋,體(包含程序、運行和其他注釋);

    變量,實例,方法等:按public,protect,private排列;盡量少用public。

    參見最后example

     

     

    3. 縮進

    3.1 避免每行多于80 個字符,逗號后或運算符前斷開,

    someMethod(longExpression1, longExpression2, longExpression3,

    longExpression4, longExpression5);

     

    var = someMethod1(longExpression1,

    someMethod2(longExpression2,

    longExpression3));

     

    3.2 較高級的斷開比較低級的斷開更好,新行應(yīng)與同級

    上一行的開頭對齊;以下是斷開算術(shù)式的兩個例子。

    第一個較好,因為斷開出現(xiàn)在算術(shù)式以外,處于較高一級。

    longName1 = longName2 * (longName3 + longName4 - longName5)

    + 4 * longname6; // PREFER

     

    longName1 = longName2 * (longName3 + longName4

    - longName5) + 4 * longname6; // AVOID

     

     

    3.3 縮排的一個單位應(yīng)使用4 個空格,不使用制表符而盡量使用空格。

    通常語句使用8個空格縮進,就要折行,由于傳統(tǒng)的(4個空格)

    縮進使觀察程序體比較難。例如:

    if ((condition1 && condition2)

    || (condition3 && condition4)

    ||!(condition5 && condition6)) { file://BAD WRAPS

    doSomethingAboutIt(); file://MAKE THIS LINE EASY TO MISS

    }

     

    file://USE THIS INDENTATION INSTEAD

    if ((condition1 && condition2)

    || (condition3 && condition4)

    ||!(condition5 && condition6)) {

    doSomethingAboutIt();

    }

     

     

    4. 注釋,Java程序有兩類注釋:文檔注釋和執(zhí)行注釋。

    4.1 文檔注釋只有java具有,/**...*/。能夠被javadoc 工具生成HTML文檔,

    描述類,接口,構(gòu)造器,方法和字段,相當于使用指南。

    /**

    * Class description goes here.

    *

    * @version 1.82 18 Mar 1999

    * @author Firstname Lastname

    */

     

    4.2 執(zhí)行注釋是那些在使用在C++中的/*...*/和//。目的為了理解程序和運行,

    包括不適合于文檔注釋的內(nèi)容,塊狀或一行,使用/*...*/,注釋程序可使用//,

    也可放在短行后面,盡量對齊。

    /*

    * @(#)Blah.java 1.82 99/03/18

    *

    * Copyright (c) 1994-1999 Sun Microsystems, Inc.

    * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.

    * All rights reserved.

    *

    * This software is the confidential and proprietary information of Sun

    * Microsystems, Inc. ("Confidential Information"). You shall not

    * disclose such Confidential Information and shall use it only in

    * accordance with the terms of the license agreement you entered into

    * with Sun.

    */

     

    /* A class implementation comment can go here. */

    // implementation comment

     

     

    5. 聲明declaration

    5.1 每行一個聲明,加以注釋;

    int level; // indentation level

    int size; // size of table

     

    5.2 不要在同一行放置不同的類型;

    int foo, fooarray[]; file://WRONG!

     

    5.3 只在塊的開始處,放置聲明;

    第一次使用時再聲明,增強代碼的可移植性。

    if (condition) {

    int int2 = 0; // beginning of "if" block

    ...

    }

    for (int i = 0; i < maxLoops; i++) { ... }

     

    5.4 方法后緊跟"(" ,"{"出現(xiàn)在行尾。

    Sample(int i, int j) {

    ivar1 = i;

    ivar2 = j;

    }

     

     

    6. 語句

    6.1 每行最多包括一個語句;

    argv++; // Correct

    argc--; // Correct

    argv++; argc--; // AVOID!

    if (condition) {

    statements;

    } else {

    statements;

    }

    for (initialization; condition; update) {

    statements;

    }

     

    6.2 比較重要的一個:

    try {

    statements;

    }catch (ExceptionClass e) {

    statements;

    }

     

     

    7. 空格

    7.1 利用空行分隔代碼段來提高可讀性;

    7.2 使用空行:類,接口,方法之間,在一個方法的本地變量和它的第一個語句間;

    7.3 被一個圓括號跟著的關(guān)鍵字應(yīng)被一個空格所分開,

    例"while (true) { ",

    但方法不分開。

    7.4 參數(shù)列表中的逗號之后使用一個空格。

    public void doSomethingElse(Object someParam, String twoParam)

    7.5 二進制的操作符與數(shù)以空格分開,例"a = (a + b) / (c * d);" 。

     

     

    8. 其它

    8.1 避免使用一個對象來訪問一個類的(靜態(tài))變量或方法。

    而是使用一個類的名字;

    classMethod(); file://OK

    AClass.classMethod(); file://OK

    anObject.classMethod(); file://AVOID!

     

    8.2 避免分配多個變量給同樣值在一個單獨的語句中;

    fooBar.fChar = barFoo.lchar = 'c'; // AVOID!

     

    8.3 適當使用()和{}來分隔運算和程序。

     

     

    9. 性能有關(guān) (優(yōu)化代碼,調(diào)試,運行)

    避免太多的使用 synchronized 關(guān)鍵字 ;

    盡量使用 StringBuffer 對象;

    盡量不要混合使用AWT 和 Swing 組件,等等。

     

     

    下面是一個參考范例。

    /*

    * @(#)Blah.java 1.82 99/03/18

    *

    * Copyright (c) 1994-1999 Sun Microsystems, Inc.

    * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.

    * All rights reserved.

    *

    * This software is the confidential and proprietary information of Sun

    * with Sun.....

    */

     

     

    package java.blah;

     

    import java.blah.blahdy.BlahBlah;

     

    /**

    * Class description goes here.

    *

    * @version 1.82 18 Mar 1999

    * @author Firstname Lastname

    */

    public class Blah extends SomeClass {

    /* 執(zhí)行注釋. */

     

    /** classVar1 文檔注釋*/

    public static int classVar1;

     

    /**

    * classVar2 多于一行的文檔注釋

    * 注釋

    */

    private static Object classVar2;

     

    /** instanceVar1 文檔注釋 */

    public Object instanceVar1;

     

    /** instanceVar2 文檔注釋 */

    protected int instanceVar2;

     

    /** instanceVar3 文檔注釋 */

    private Object[] instanceVar3;

     

    /**

    * ...構(gòu)造器 Blah 文檔注釋...

    */

    public Blah() {

    // ...執(zhí)行注釋 goes here...

    }

     

    /**

    * ...方法 doSomething 文檔注釋...

    */

    public void doSomething() {

    // ...執(zhí)行注釋 goes here...

    }

     

    /**

    * ...方法 doSomethingElse文檔注釋..

    * @param someParam參數(shù)描述

    */

    public void doSomethingElse(Object someParam) {

    // ...執(zhí)行注釋goes here...

    }

    }

    posted on 2007-07-25 14:49 我的Java工作經(jīng)歷 閱讀(604) 評論(1)  編輯  收藏

    評論

    # re: 轉(zhuǎn)帖:Java書寫規(guī)范[未登錄] 2009-02-18 16:12 Java
    不錯  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 九九全国免费视频| 亚洲AV色欲色欲WWW| 亚洲精品在线观看视频| 香蕉视频在线观看亚洲| 亚洲乱码中文字幕小综合| 亚洲欧洲无卡二区视頻| 美国免费高清一级毛片| 国产免费AV片在线观看播放| 好紧我太爽了视频免费国产 | 亚洲性日韩精品国产一区二区| 夜夜春亚洲嫩草影院| 久久亚洲美女精品国产精品 | 国产综合成人亚洲区| 一本久到久久亚洲综合| 亚洲午夜免费视频| 国产精品爱啪在线线免费观看| 国产精品免费看久久久久| 亚洲人成伊人成综合网久久久| 亚洲妇女熟BBW| 久久久免费的精品| 国产免费观看视频| 亚洲国产成人va在线观看网址| 欧美a级在线现免费观看| 国产亚洲精aa成人网站| 精品一区二区三区无码免费直播| 永久黄色免费网站| 亚洲乱码一区二区三区在线观看| 亚洲爆乳精品无码一区二区| 99久久精品日本一区二区免费| 亚洲乱妇熟女爽到高潮的片| 久久久久噜噜噜亚洲熟女综合| 日本卡1卡2卡三卡免费| 国产亚洲成av人片在线观看 | 久久久久久国产精品免费免费男同 | 日韩精品亚洲专区在线观看| a毛片免费观看完整| 亚洲视频一区二区| 182tv免费视视频线路一二三| 亚洲精品国产综合久久久久紧| 国产午夜亚洲精品午夜鲁丝片| 成人免费激情视频|