我观察到,外部类可以访问内部类的私有实例variables。 这怎么可能? 下面是一个演示相同的示例代码: class ABC{ class XYZ{ private int x=10; } public static void main(String… args){ ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: "+xx.x); ///Why is this allowed?? } } 为什么这种行为是允许的?
我有以下代码: class Hello { class Thing { public int size; Thing() { size = 0; } } public static void main(String[] args) { Thing thing1 = new Thing(); System.out.println("Hello, World!"); } } 我知道Thing什么都不做,但是我的Hello,World程序编译得很好,没有它。 只有我定义的课程对我来说是失败的。 它拒绝编译。 我得到No enclosing instance of type Hello is accessible."在创build一个新的东西的线我猜或者: 我有系统级别的问题(DrJava或我的Java安装)或 我对如何在java中构build工作程序有一些基本的误解。 有任何想法吗?
Java中的内部类和静态嵌套类之间的主要区别是什么? devise/实现在select其中一个方面起作用吗?