分享

java之接口与内部类

 桑枯海 2013-11-23

接口与内部类相关的内容,早就已经看过了,但是,因为急于求成,没有花多余的时间去消化这些知识,所以,心里还有一股模糊的感觉。我又花了一些时间来回顾了一下。

      接口的作用:

      一、定义一个协议,使得大家得以遵守,这样,代码就更加规范,更加便于管理

      二、用于回调(一个类实现此接口,然后在另一类的一个模板方法中,这个类的实例的引用被向上转型而后使用。)

      呵呵,说清楚这些事情有的难度,我感觉到,它是模式上的问题。

      个人感觉上,java中用接口在大多数的情况下是用于向上转型,即一个接口拥有多个实现,而又在某处定义了这样一个方法,这个方法的参数类型就是这个接口名,这样,这个方法就可以接受所有从这个接口实现得到的类的实例(我知道这话有点拗口,但也没办法),接合后面学到的“容器”章节的内容,越发觉得,使有者们为了代码的通用性,可维护性,他们只有在很不得己的情况下才会使用那个实现的类的特有方法,一般的情况下,他们都会将其向上转型,这样,以后要修改代码的话,就很简单,只要将定义的地方修改一下就行了。这就是所谓的消去对类型的耦合性了。

      这一章节,作者总结了很多非要不断实验才得到的一些非常有用的结论,要是我的话,就不能考虑到所有可能会发生的技术细节。

      一、接口中可以存在接口,只能嵌入嵌套类,而不能是非嵌套类

      二、类中可以嵌入类与接口

      三、内部类,内部接口可以定义成为private,protect,它们就相当于外围类的一个成员

      四、private的类通常用于内部使用,更多用于返回一个指向外部接口的向上转型的引用

      五、内部类的构造器被定义为private,但是,它还是可以从其外围类中进行实例化

      六、当内部类为public或者是包妨问权限时,可以在外围类之外的其他中实例化它,除此之处,内部类可

          以继承、覆盖(这个有点小技巧),

      七、非嵌套类的内部类进行实例化时,需要一个指向外围类的引用,即先实例化外围类,再实例化内部

          类。

      八、内部类用于实现多继承

      九、内部类可以妨问外围类的所有成员(包括private成员)

      十、当一个类要实现两个接口,但是,两个接口有部分方法是相同的,这时,可以用一个内部类来实现其

          中一个接口,当然,这种情况不只是发生在同时实现两个接口的情况。

      十一、接口的成员必然是public的。

      十二、接口中的成员在被实现时可以将其实现为private或者是其他权限

      十三、局部内部类的作用域在对应代码块中,不能在其前面加权限修饰符

      十四、匿名内部类要使用其外围类中的成员变量,这此变量必须是final的。不然将会在编译时抛出错误。

      十五、可以不实现一个接口的内部接口!
      ===========================================================================================

      从一处得到三句话,觉得相当有用、中肯,所以写下来:

      接口是指出想做什么!

      类是指出细节

      如果两个类联系非常的紧密,那么建议最好用内部类!!

 

      回顾了一下,暂时只总结了这么一些,可能初学者看到了后会头皮发麻,甚至会丧失将java学习下去的信心,这是能够理解的,所以,一个真正要学习的人,不应当来网上来瞎看,只能提供一个参考,网上的东西,都是他们的一些体会。这些体会很可能会误导读者。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多