国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

帶來娛樂和收益的靜態內部類

2019-11-18 12:09:38
字體:
來源:轉載
供稿:網友

  學會了這個技巧,您便可以把靜態內部類的使用加入到您的 java 使用技巧集錦當中。 靜態內部類是在另一個類的定義中進行定義,并且標記為靜態的類。我將向您展示一個實例,它利用靜態內部類向另一個類中添加測試代碼。
  靜態內部類在概念和實現上都十分簡單,基本上來說就是在您的主類中定義一個靜態類:
  public class Foo
   {
   // ....
  
   public static class Test
   {
   public static void main (String[] args)
   {
   // ....
   }
   }
   }
  
  
  說到向您主要的類中添加輔助代碼,其中最重要的一點就是靜態內部類被編譯到一個單獨的 .class 文件中,這個文件獨立于它的外部類。例如,假如外部類叫做 Foo,而它的一個內部類叫 Test,那么這個內部類將被編譯成 Foo$Test.class 文件。.class 文件的分離意味著您可以將輔助的嵌套代碼與主要的外部類牢固地捆綁在一起。它們在同一個源文件中,內部類的確是在外部類的內部。您無需再付出任何發布或運行時的開銷。真棒!例如,假如輔助代碼只是用于調試,那么您只需發布 Foo.class 文件而將 Foo$Test.class 文件留下即可。
  
  我將這個技巧主要用于編寫外部類的演示代碼、錯誤調試代碼,以及進行單元測試實現類行為的自動驗證。(當然,做為一個勤奮的開發人員,我預備將測試代碼轉化成單元測試。)
  
  注重,要執行 Foo.Test 類的 main() 方法,請使用下面的命令:
  
   % java Foo$Test
  
  
  假如您正在使用的命令解釋程序(shell)把“$”做為一個保留字,那么您應該使用下面的命令:
  
   % java Foo/$Test
  
  
  還有一點十分有趣:靜態內部類根據定義可以訪問外部類的保護域和私有域。這件事可以說既有利也有弊。因為您可能在不經意間就破壞了外部類的保護域和私有域,從而違反了它的封裝性,所以請小心對待!這一功能最恰當的應用就是編寫類的白盒測試程序--因為這樣可以引入一些利用通常的黑盒測試很難引入的問題(黑盒測試不能訪問對象的內部狀態)。
  
  XYPair 類十分簡單。它提供一個固定的整數對,(x,y)。XYPair.Test 類有一個 main() 方法可以對 XYPair 進行簡單的測試并輸出結果。試著調整測試代碼和核心代碼來試驗各種可能的問題。
  
  假如您更加大膽,您可能想檢驗 Java 單元測試構架(JUnit)。您可以去掉源代碼中的各種注釋,然后利用 JUnit 的測試引擎運行這些測試程序。
  
  結論
  通過使用靜態內部類,您可以給您的系統添加輔助功能,以便完成諸如測試之類的工作,而對正式發布的產品不會帶來任何不利影響。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贡嘎县| 高要市| 临城县| 吴川市| 鹤壁市| 清流县| 克拉玛依市| 侯马市| 抚宁县| 绥江县| 昆山市| 呈贡县| 香格里拉县| 鲜城| 偃师市| 张家口市| 商水县| 柯坪县| 建德市| 宣武区| 白朗县| 射洪县| 会泽县| 安达市| 河西区| 方城县| 中西区| 八宿县| 淮北市| 乐昌市| 宣汉县| 贺州市| 闵行区| 扶沟县| 张家口市| 祁东县| 寿阳县| 云阳县| 淄博市| 榆树市| 玛纳斯县|