在java中,外部类可以是public、final、default或abstract。
为什么不像静态一样
public static class MyClass{}
外部类已经是隐式静态的。
非静态嵌套类(=内部类)意味着内部类隐式地引用其父类。
这就是为什么,对于嵌套类,您可以区分静态和非静态。这对于外部类来说没有意义。
下面是一个示例,用于了解静态/非静态嵌套类之间的区别。您应该理解为什么它在外部类中没有意义。
public class MyClass {
private String anAttributeOfMyClass;
private /*static*/ class MyInnerClass {
public void foo() {
/*
* Here, I can access the attribute of the parent class
* because I implicitly have a reference to it.
* Try to make the nested class static an see the difference.
*/
anAttributeOfMyClass.trim();
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)