因为内部类的特性是 内部类(Class N )是可以访问外部类的变量,而外部类是不能直接访问内部类中的成员(变量、方法: 代码中的专门创建对象后的 n.show();就是这个原因)。
PS: 附送一个小知识点,O(∩_∩)O~,我也是最近才发现的,(因为之前很少在主函数调用本类方法,或经常把本类方法定义成static的):
如果你要在主函数(主函数是静态的,被static 修饰)中调用本类中的非静态方法或非静态变量,那么你甚至可以在主函数中创建本类的对象。
例如: Class Demo{ public static void main(String[] args){ Demo d = new Demo(); //然后就能直接通过 d 去调用本类Demo中的非静态方法。} }
(当然不建议经常用,至于坏处应该就是在内存中占用空间,至于占用多少就不清楚了,本类中方法特别多时 , 可能比你把它弄成static 还要占用内存空间)
可能最多就是访问的方法不能或定义为static时 需要改动很多时使用。 |