黑马程序员技术交流社区
标题:
内部类(java面试题)
[打印本页]
作者:
chenguoyu520
时间:
2015-9-23 13:32
标题:
内部类(java面试题)
Static Nested Class和Inner Class有什么不同?
作者:
381890216
时间:
2015-9-23 21:06
内部类可以直接访问外部类的成员,包括私有对象。
静态内部类(嵌套类)只能访问外部类的静态成员
外部类访问内部类,必须创建内部类对象:Outer.Inner in = new Outer().new Inner();
外部类访问嵌套类:1,如果嵌套类的成员都是静态的,可以直接调用: Outer.Inner.function();
2,如果嵌套类的成员不是静态的,需要创建Outer.Inner in = new Outer.Inner();
作者:
381890216
时间:
2015-9-23 21:11
381890216 发表于 2015-9-23 21:06
内部类可以直接访问外部类的成员,包括私有对象。
静态内部类(嵌套类)只能访问外部类的静态成员
非静态内部类不能含有任何static声明的语句。(只有顶层的类和静态内部类里面才能用有static语句)
我的理解是:非static的内部类总是由一个外部的对象生成,既然与对象有关,就没有静态的字段和方法,否则就与“静态成员无需对象即可直接调用”的概念冲突了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2