zoukankan      html  css  js  c++  java
  • 接口内部的类

    正常情况下,不能在接口放置任何代码,但嵌套类可以作为接口的一部分,你放到接口中的任何类都自动地是public和static.因为类是static的,只是将嵌套置于接口的命名空间内,这并不违反接口的规则,你甚至可以在内部类中实现其外围接口

    //在CMD下运行编译后的文件 :java ClassInInterface$Test  在unix下要必须转义$ :Java ClassInInterface$Test
    //
    : innerclasses/ClassInInterface.java // {main: ClassInInterface$Test} package object; public interface ClassInInterface { void howdy(); class Test implements ClassInInterface { //如果不能编译可以在这加static public void howdy() { System.out.println("Howdy!"); } public static void main(String[] args) { new Test().howdy(); } } } /* Output: Howdy! *///:~

    如果你需要创建某些公共代码,使得它么可以被某个接口的所有不同实现所共用,那么使用接口内部的嵌套类会显得很方便

    有时在每个类中都写一个main()方法,用来测试这个类,这样做有一个缺点,那就是必须带着那些编译过的额外代码,使用嵌套类放置内部代码,可以很方便

    //TestBed编译后生成两个.class文件 TestBed$Tester.class和TestBed.class
    //可以用TestBed$Tester.class类来做测试,但不必再发布产品中包含它,再将产品打包前删除TestBed$Tester.class
    //
    : innerclasses/TestBed.java // Putting test code in a nested class. // {main: TestBed$Tester} package object; public class TestBed { public void f() { System.out.println("f()"); } public static class Tester { public static void main(String[] args) { TestBed t = new TestBed(); t.f(); } } } /* Output: f() *///:~
  • 相关阅读:
    利用performSelectorInBackground和performSelectorOnMainThread实现多线程刷新UI
    iOS之NSCocoaErrorDomain Code=3840
    iOS之原生地图与高德地图
    iOS之Storyboard References
    iOS之内购
    iOS之上线被拒
    iOS之可拖拽重排的CollectionView
    iOS之内购
    ios专题
    ios专题
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10228708.html
Copyright © 2011-2022 走看看