<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
    摘要這個(gè)技巧提供了一個(gè)實(shí)例,它可以利用靜態(tài)內(nèi)部類為您的類添加獨(dú)立的、可選的輔助功能,例如測(cè)試和示例代碼等。( 500 字)



    學(xué)會(huì)了這個(gè)技巧,您便可以把靜態(tài)內(nèi)部類的使用加入到您的 Java 使用技巧集錦當(dāng)中。靜態(tài)內(nèi)部類是在另一個(gè)類的定義中進(jìn)行定義,并且標(biāo)記為靜態(tài)的類。我將向您展示一個(gè)實(shí)例,它利用靜態(tài)內(nèi)部類向另一個(gè)類中添加測(cè)試代碼。



    靜態(tài)內(nèi)部類在概念和實(shí)現(xiàn)上都十分簡(jiǎn)單,基本上來說就是在您的主類中定義一個(gè)靜態(tài)類:



    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();
                       }
             }
    }

    說到向您主要的類中添加輔助代碼,其中最重要的一點(diǎn)就是靜態(tài)內(nèi)部類被編譯到一個(gè)單獨(dú)的 .class 文件中,這個(gè)文件獨(dú)立于它的外部類。例如,如果外部類叫做 Foo,而它的一個(gè)內(nèi)部類叫 Test,那么這個(gè)內(nèi)部類將被編譯成 Foo$Test.class 文件。.class 文件的分離意味著您可以將輔助的嵌套代碼與主要的外部類牢固地捆綁在一起。它們?cè)谕粋€(gè)源文件中,內(nèi)部類的確是在外部類的 內(nèi)部。您無需再付出任何發(fā)布或運(yùn)行時(shí)的開銷。真棒!例如,如果輔助代碼只是用于調(diào)試,那么您只需發(fā)布 Foo.class 文件而將 Foo$Test.class 文件留下即可。


    我將這個(gè)技巧主要用于編寫外部類的演示代碼、錯(cuò)誤調(diào)試代碼,以及進(jìn)行單元測(cè)試實(shí)現(xiàn)類行為的自動(dòng)驗(yàn)證。(當(dāng)然,做為一個(gè)勤奮的開發(fā)人員,我準(zhǔn)備將測(cè)試代碼轉(zhuǎn)化成單元測(cè)試。)


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


    % Java TestDebug$Test


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


    % Java TestDebug\$Test


    還有一點(diǎn)十分有趣:靜態(tài)內(nèi)部類根據(jù)定義可以訪問外部類的保護(hù)域和私有域。這件事可以說既有利也有弊。因?yàn)槟赡茉诓唤?jīng)意間就破壞了外部類的保護(hù)域和私有域,從而違反了它的封裝性,所以請(qǐng)小心對(duì)待!這一功能最恰當(dāng)?shù)膽?yīng)用就是編寫類的 白盒測(cè)試程序--因?yàn)檫@樣可以引入一些利用通常的黑盒測(cè)試很難引入的問題(黑盒測(cè)試不能訪問對(duì)象的內(nèi)部狀態(tài))。


    結(jié)論通過使用靜態(tài)內(nèi)部類,您可以給您的系統(tǒng)添加輔助功能,以便完成諸如測(cè)試之類的工作,而對(duì)正式發(fā)布的產(chǎn)品不會(huì)帶來任何不利影響。


    主站蜘蛛池模板: 成年女人免费v片| 色天使亚洲综合在线观看| 日韩特黄特色大片免费视频| 成人无码区免费A∨直播| 亚洲综合激情五月丁香六月| 亚洲无线观看国产精品| 日本成人免费在线| 18女人水真多免费高清毛片| 中文字幕久无码免费久久| 亚洲av无码专区在线电影天堂| 精品无码一区二区三区亚洲桃色 | 噜噜噜亚洲色成人网站∨| 亚洲午夜无码AV毛片久久| 日韩一级免费视频| 美女被cao免费看在线看网站| 午夜免费啪视频在线观看 | 日韩在线一区二区三区免费视频| 亚洲人成小说网站色| 亚洲精品视频在线观看视频| 亚洲日本乱码在线观看| 亚洲一区二区视频在线观看| 国产免费黄色大片| 色视频色露露永久免费观看| 桃子视频在线观看高清免费完整| 一级毛片在线免费观看| 国产一区二区三区免费观看在线| h片在线播放免费高清| 一本一道dvd在线观看免费视频| 国产成人综合亚洲一区| 亚洲人成欧美中文字幕| 亚洲日产乱码一二三区别| 亚洲人成自拍网站在线观看| 亚洲人成网站色在线观看| 亚洲一区精彩视频| 2020国产精品亚洲综合网| 在线观看亚洲AV日韩A∨| 在线亚洲高清揄拍自拍一品区| 亚洲av无码片区一区二区三区| 亚洲中文无码线在线观看| 亚洲伊人色一综合网| 亚洲an日韩专区在线|