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

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

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

    利用靜態內部類為您的代碼添加輔助功能

    利用靜態內部類為您的代碼添加輔助功能
    作者 javaworld.com">John D. Mitchell

    摘要
    這個技巧提供了一個實例,它可以利用靜態內部類為您的類添加獨立的、可選的輔助功能,例如測試和示例代碼等。( 500

    學會了這個技巧,您便可以把 靜態內部類 的使用加入到您的 Java 使用技巧集錦當中。靜態內部類是在另一個類的定義中進行定義,并且標記為靜態的類。我將向您展示一個實例,它利用靜態內部類向另一個類中添加測試代碼。

    靜態內部類在概念和實現上都十分簡單,基本上來說就是在您的主類中定義一個靜態類:

    public class TestDebug

    {

    ???????? private double num;

    ???????? public TestDebug(double in)

    ???????? {

    ?????????????????? num = in;

    ???????? }

    ???????? public void output()

    ???????? {

    ?????????????????? System.out.println(num);

    ??????????????????

    ???????? }

    ???????? public static class Test

    ???????? {

    ?????????????????? public static void main(String[] args)

    ?????????????????? {

    ??????????????????????????? TestDebug td? = new TestDebug(3.9);

    ??????????????????????????? td.output();

    ?

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

    ???????? }

    }

    說到向您主要的類中添加輔助代碼,其中最重要的一點就是靜態內部類被編譯到一個單獨的 .class 文件中,這個文件獨立于它的外部類。例如,如果外部類叫做 Foo ,而它的一個內部類叫 Test ,那么這個內部類將被編譯成 Foo$Test.class 文件。 .class 文件的分離意味著您可以將輔助的嵌套代碼與主要的外部類牢固地捆綁在一起。它們在同一個源文件中,內部類的確是在外部類的 內部 。您無需再付出任何發布或運行時的開銷。真棒!例如,如果輔助代碼只是用于調試,那么您只需發布 Foo.class 文件而將 Foo$Test.class 文件留下即可。

    我將這個技巧主要用于編寫外部類的演示代碼、錯誤調試代碼,以及進行單元測試實現類行為的自動驗證。(當然,做為一個勤奮的開發人員,我準備將測試代碼轉化成單元測試。)

    注意,要執行 TestDebug .class 類的 main() 方法,請使用下面的命令:

    % java TestDebug$Test

    如果您正在使用的命令解釋程序( shell )把 “$” 做為一個保留字,那么您應該使用下面的命令:

    % java TestDebug\$Test

    還有一點十分有趣:靜態內部類根據定義可以訪問外部類的保護域和私有域。這件事可以說既有利也有弊。因為您可能在不經意間就破壞了外部類的保護域和私有域,從而違反了它的封裝性,所以請小心對待!這一功能最恰當的應用就是編寫類的 白盒 測試程序--因為這樣可以引入一些利用通常的黑盒測試很難引入的問題(黑盒測試不能訪問對象的內部狀態)。

    結論
    通過使用靜態內部類,您可以給您的系統添加輔助功能,以便完成諸如測試之類的工作,而對正式發布的產品不會帶來任何不利影響。

    ?

    posted on 2007-01-29 16:21 Tom 閱讀(314) 評論(0)  編輯  收藏 所屬分類: Java

    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類(42)

    隨筆檔案(43)

    文章分類

    相冊

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲美女视频一区二区三区| 相泽亚洲一区中文字幕| 亚洲国产精品成人综合色在线婷婷 | 免费a级毛片无码a∨免费软件| 亚洲国产免费综合| 最好2018中文免费视频| 亚洲另类少妇17p| 久久WWW免费人成—看片| 区久久AAA片69亚洲| 在线观看人成视频免费无遮挡 | 亚洲国语在线视频手机在线| 永久在线免费观看| 亚洲中文无码av永久| 91成年人免费视频| 亚洲一久久久久久久久| 国产免费私拍一区二区三区 | 亚洲一区AV无码少妇电影| 一个人在线观看视频免费 | h在线看免费视频网站男男| JLZZJLZZ亚洲乱熟无码| 水蜜桃视频在线观看免费播放高清 | 老司机69精品成免费视频| 久久青青草原亚洲av无码app | 亚洲AV无码XXX麻豆艾秋| 免费v片在线观看| 国产精品免费久久久久电影网| 亚洲AV无码一区东京热久久 | 99久久久国产精品免费牛牛四川 | 国产亚洲成AV人片在线观黄桃 | 可以免费看黄的网站| 久久精品国产亚洲av天美18| 亚洲日韩VA无码中文字幕| 一级毛片免费观看| 亚洲欧美日韩久久精品| 国产精品亚洲综合专区片高清久久久 | 免费福利视频导航| 视频一区二区三区免费观看| 亚洲国产美国国产综合一区二区| 免费毛片在线看片免费丝瓜视频| 香港经典a毛片免费观看看| 亚洲欧洲日韩国产综合在线二区|