美文网首页
静态内部类有什么用?

静态内部类有什么用?

作者: 已迁至知乎_此不再维护 | 来源:发表于2017-07-18 10:35 被阅读0次

    知乎昭言说

    根据Oracle官方的说法:

    Nested classes are divided into two categories: static and non-static. Nested classes that are declared static are called static nested classes. Non-static nested classes are called inner classes.

    从字面上看,一个被称为静态嵌套类,一个被称为内部类。从字面的角度解释是这样的:什么是嵌套?嵌套就是我跟你没关系,自己可以完全独立存在,但是我就想借你的壳用一下,来隐藏一下我自己(真TM猥琐)。什么是内部?内部就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的)至于具体的使用场景,我就不当翻译工了,有兴趣的直接去官网看吧。

    知乎铁心男说

    静态内部类就是个独立的类。之所以要弄这么个东西,只是起到一个注释的效果,而且这个注释可静态检查。比如有A,B两个类,B有点特殊,虽然可以独立存在,但只被A使用。这时候怎么办?如果把B并入A里,复杂度提高,搞得A违反单一职责。如果B独立,又可能被其他类(比如同一个包下的C)依赖,不符合设计的本意。所以不如将其变成A.B,等于添加个注释,告诉其他类别使用B了,它只跟A玩。非静态的才是真正的内部类,对其外部类有个引用。

    相关文章

      网友评论

          本文标题:静态内部类有什么用?

          本文链接:https://www.haomeiwen.com/subject/aavckxtx.html