内部类用static 和不用 static 修饰是两种完全不一样的用法,参考下面。
根据Oracle官方的说法:
Nested classes are divided into two categories: static and non-static. Nested classes that are declared static are calledstatic nested classes. Non-static nested classes are calledinner classes.
从字面上看,一个被称为静态嵌套类,一个被称为内部类。
从字面的角度解释是这样的:
什么是嵌套?嵌套就是我跟你没关系,自己可以完全独立存在,但是我就想借你的壳用一下,来隐藏一下我自己(真TM猥琐)。
什么是内部?内部就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的)
至于具体的使用场景,我就不当翻译工了,有兴趣的直接去官网看吧。
传送门:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
网友评论