<分区>
Possible Duplicate:
Static nested class in Java, why?
我知道 java 中的静态字段。但是不知道为什么要创建一个静态类。有什么想法吗?
最佳答案
class Outer {
int a;
class Inner {
void test() {
System.out.println(a);
}
}
}
通常,内部类可以引用其所属类的字段,如您在上面的(伪)示例中所见。因此 Inner 的实例可以访问 Outer 中的字段/方法等。
但这需要每个 Inner 实例都有一个与之关联的 Outer 实例。所以你不能这样做
new Inner();
而是必须做
new Outer().new Inner();
在某些情况下,这是不可取的——比如您需要确保您的 Outer 实例可能会被垃圾收集,或者您需要使 Inner 实例独立于 Outer。在这种情况下,您可以将其更改为
static class Inner {
在这种情况下,现在您可能不再像以前那样引用“a”,但作为交换,您根本不需要拥有 Outer 的实例来拥有 Inner 的实例。
关于java - 为什么我们在java中将类设为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7846191/