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

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

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

    posts - 195, comments - 34, trackbacks - 0, articles - 1

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

    Posted on 2007-10-13 23:43 小強摩羯座 閱讀(222) 評論(0)  編輯  收藏 所屬分類: Java
    摘要這個技巧提供了一個實例,它可以利用靜態內部類為您的類添加獨立的、可選的輔助功能,例如測試和示例代碼等。( 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


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


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


    主站蜘蛛池模板: 国产h视频在线观看网站免费| 久久精品国产亚洲AV无码娇色| 国产成人无码免费看视频软件| 男女一进一出抽搐免费视频 | 亚洲成在人线在线播放无码 | 91香蕉国产线观看免费全集| 一级一级毛片免费播放| 亚洲AV无码之国产精品| 亚洲人成在线免费观看| 亚洲国产二区三区久久| 亚洲午夜国产精品无码 | 曰韩无码AV片免费播放不卡| 亚洲成av人片在线天堂无| 亚洲av成人综合网| 亚洲欧洲日产国码www| 久久亚洲国产精品一区二区| 亚洲免费日韩无码系列 | 亚洲熟妇无码av另类vr影视| 亚洲av乱码一区二区三区| 97亚洲熟妇自偷自拍另类图片| 国产亚洲A∨片在线观看| 中文字幕精品亚洲无线码二区 | 亚洲人av高清无码| 国产成+人+综合+亚洲专| 亚洲理论精品午夜电影| 亚洲精品乱码久久久久久下载 | 久久久精品免费视频| 日本免费A级毛一片| 国内精品99亚洲免费高清| 成人片黄网站色大片免费观看cn| 一级午夜免费视频| ssswww日本免费网站片| 一区在线免费观看| WWW免费视频在线观看播放| 国产一级高青免费| 日本免费高清视频| 亚洲一区二区三区免费视频| 成年免费大片黄在线观看岛国| 国产精品免费观看久久| 在线免费观看污网站| 免费国产美女爽到喷出水来视频|