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

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

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

    JAVA進行式
    讓我們把JAVA進行到底!
    posts - 13,comments - 21,trackbacks - 0
             Java程序一個類一個文件,文件名以類名命名,我想這個大家都知道吧,那么關于java源代碼文件的格式還有什么要注意的呢?看看人家怎么說的吧:

             1、版權信息,必須在 java 文件的開頭,比如:

         /*
          * Copyright ? 2000 Shanghai XXX Co. Ltd.
          * All right reserved.
          */

             其他不需要出現在 javadoc 的信息也可以包含在這里。

             2、Package/Imports 
             package 行要在 import 行之前,import 中標準的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個包中的不同子目錄,則應該用 * 來處理。

             package hotlava.net.stats;

             import java.io.*;
             import java.util.Observable;
             import hotlava.util.Application

             這里 java.io.* 使用來代替InputStream and OutputStream 的。
             (關于這點,有點疑問,我知道詳細的寫出引用類的路徑及類名,可以較快的搜索到要引用的類,可是一個包中要引用的類過多的話,是不是用*來處理,比全部寫出來好哩?全部寫出來會很長,不方便閱讀,不過現在的IDE大都有收縮功能,問題也不大吧?)

             3、對類的注釋(解釋類的功能),采用文檔注釋,寫在類聲明之前。例如: 

              /**
               * A class representing a set of packet and byte counters
               * It is observable to allow it to be watched, but only
               * reports changes when the current set is complete
               */
             
             接下來是類定義的格式,包含了在不同的行的 extends 和 implements

          public class CounterSet
    		         extends Observable
    		         implements Cloneable


         (這樣寫呀,第一次看到,我想我不太喜歡這種寫法,這也是規范嗎?)

             4、類的成員變量,在聲明之前也要用文檔注釋說明其意義。例如:

             /**
              * Packet counters
              */
             protected int[] packets;

             public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。
             (因為public的成員變量是類的接口,是供用戶程序員使用的,所以必須生成文檔,所以必須用文檔注釋標注)
             5、類變量的存取的方法,在其聲明之前也要用文檔注釋說明其意義。
             若它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。 例如:

         /**
          * Get the counters
          * @return an array containing the statistical data.  This array has been
          * freshly allocated and can be modified by the caller.
          */
          public int[] getPackets() { return copyArray(packets, offset); }
          public int[] getBytes() { return copyArray(bytes, offset); }
    
          public int[] getPackets() { return packets; }
          public void setPackets(int[] packets) { this.packets = packets; }
    
       
                 其它的方法不要寫在一行上。

             6、構造函數,應該用遞增的方式寫(比如:參數多的寫在后面)。
             訪問類型 ("public", "private" 等.) 和 任何 "static", "final" 或 "synchronized" 應該在一行中,并
    且方法和參數另寫一行,這樣可以使方法和參數更易讀。





             public          CounterSet(int size){              this.size = size;          }
             (這么寫?不習慣,保留意見)          
    7、克隆方法,如果一個類是可以被克隆的,那么在定義類時應該重寫其繼承的 clone 方法:
         public
         Object clone() {
           try {
              CounterSet obj = (CounterSet)super.clone();
              obj.packets = (int[])packets.clone();
              obj.size = size;
              return obj;
           }catch(CloneNotSupportedException e) {
              throw new InternalError("Unexpected CloneNotSUpportedException: " 
                                     + e.getMessage());      }      }

             8、類方法(定義為final或static的,類而非其實例對象所擁有的方法),例如:

         /**
          * Set the packet counters
          * (such as when restoring from a database)
          */
          protected final
          void setArray(int[] r1, int[] r2, int[] r3, int[] r4)
                        throws IllegalArgumentException
          {
            //
            // Ensure the arrays are of equal size
            //
            if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length)
    	   throw new IllegalArgumentException("Arrays must be of the same size");
            System.arraycopy(r1, 0, r3, 0, r1.length);
            System.arraycopy(r2, 0, r4, 0, r1.length);
          }
    
    



        9、toString 方法,每一個類都應該對繼承自Object類的 toString 方法進行重寫:
         
          public
          String toString() {
            String retval = "CounterSet: ";
            for (int i = 0; i < data.length(); i++) {
                retval += data.bytes.toString();
                retval += data.packets.toString();
            }
            return retval;
          }
     
        10、main 方法
          如果main(String[]) 方法已經定義了, 那么它應該寫在類的底部.
          (這樣子的?為什么把main()方法寫在類的一開始不好哩?)
    posted on 2005-12-11 18:50 水秀清靈 閱讀(352) 評論(0)  編輯  收藏 所屬分類: 學習筆記
    主站蜘蛛池模板: 成人免费无码大片A毛片抽搐| 国产精品亚洲精品日韩电影| 亚洲日韩精品无码专区网址| 亚洲色成人网一二三区| 亚洲综合av一区二区三区| 希望影院高清免费观看视频| 亚洲国产精品张柏芝在线观看| 美女18毛片免费视频| 免费一级毛片不卡在线播放| 亚洲精品91在线| 无码国产精品一区二区免费虚拟VR | 亚洲av一综合av一区| 久久久久免费看黄a级试看 | 亚洲偷自拍拍综合网| 青柠影视在线观看免费| 99ri精品国产亚洲| 在线天堂免费观看.WWW| 亚洲欧美日韩国产成人| 亚洲欧洲精品成人久久曰影片| 中文在线免费视频| 亚洲精品午夜视频| 青青青青青青久久久免费观看| 特级做a爰片毛片免费看| 久久被窝电影亚洲爽爽爽| 91成人在线免费视频| 亚洲人AV在线无码影院观看| 国产成人毛片亚洲精品| 久久99毛片免费观看不卡| 亚洲18在线天美| 亚洲精品国产自在久久| 亚洲免费精彩视频在线观看| 亚洲首页国产精品丝袜| 亚洲国产a级视频| 182tv免费观看在线视频| 久久精品国产亚洲AV天海翼| 亚色九九九全国免费视频| 无码一区二区三区亚洲人妻| 亚洲国产精品无码久久久蜜芽| 亚洲中文无码永久免费| 99麻豆久久久国产精品免费| 亚洲1区1区3区4区产品乱码芒果|