当前位置: 技术问答>java相关
大家能谈谈对内隐类(inner class)的理解吗?我对这个很糊涂!
来源: 互联网 发布时间:2017-03-26
本文导语: 大家能谈谈对内隐类(inner class)的理解吗? | think in java 的7.6有介绍,呵呵 用它实现隐藏,不过,Java已经有一个非常优秀的隐藏机制——只允许类成为“友好的”(只在一个包内可见)...
大家能谈谈对内隐类(inner class)的理解吗?
|
think in java 的7.6有介绍,呵呵
用它实现隐藏,不过,Java已经有一个非常优秀的隐藏机制——只允许类成为“友好的”(只在一个包内可见),而不是把它创建成一个内部类。
但是,当我们准备上溯造型到一个基础类(特别是到一个接口)的时候,内部类就开始发挥其关键作用(从用于实现的对象生成一个接口句柄具有与上溯造型至一个基础类相同的效果)。这是由于内部类随后可完全进入不可见或不可用状态——对任何人都将如此。所以我们可以非常方便地隐藏实施细节
同时,若想在除外部类非static方法内部之外的任何地方生成内部类的一个对象,必须将那个对象的类型设为“外部类名.内部类名”。
用它实现隐藏,不过,Java已经有一个非常优秀的隐藏机制——只允许类成为“友好的”(只在一个包内可见),而不是把它创建成一个内部类。
但是,当我们准备上溯造型到一个基础类(特别是到一个接口)的时候,内部类就开始发挥其关键作用(从用于实现的对象生成一个接口句柄具有与上溯造型至一个基础类相同的效果)。这是由于内部类随后可完全进入不可见或不可用状态——对任何人都将如此。所以我们可以非常方便地隐藏实施细节
同时,若想在除外部类非static方法内部之外的任何地方生成内部类的一个对象,必须将那个对象的类型设为“外部类名.内部类名”。
|
一个public static inner class其实和外部类已经没有什么区别
这些思想性的东西最好通过书籍系统地学习,在论坛上问就太零散了
这些思想性的东西最好通过书籍系统地学习,在论坛上问就太零散了
|
而且JAVA部支持使用内部类,如果不能显著提高性能,就不要使用。JAVA的本意就是要简单,方便。可是内部类什么都好,就是不简单。
多看看书,自己写几个程序跑一下就好了
多看看书,自己写几个程序跑一下就好了
|
hehe,thinking in java 有一章在介绍内隐类(inner class),我觉得功能还是蛮强大的,就看用的好不好啦...不过我也不是很懂
|
主要是为了这个类自己调用的,例如,一个事件的触发,只有当前类用到的话,如果你写成一个单独的类,就无形中增加了可读性!
而且这样做,也满足Java的封装性!如果是友元,则不同了!
而且这样做,也满足Java的封装性!如果是友元,则不同了!