如果我在java中的静态嵌套类中定义一个成员变量,如下所示:
public class Outer {
public static class StaticNestedClass {
private int mMember = 3;
}
}
mMember会被解释为静态,因为它的类是静态的吗? 那么java中的静态嵌套类成员呢?
提前致谢。
答案 0 :(得分:7)
不,某个类的static
与字段上的static
的含义不同。字段mMember
是嵌套类StaticNestedClass
的私有实例字段。您可以使用此嵌套类,就像使用任何其他顶级类一样,只要您导入它或使用它引用其包含的类,即。 Outer.StaticNestedClass。例如,
import Outer.StaticNestedClass;
...
StaticNestedClass instance = new StaticNestedClass();
或
import Outer;
...
Outer.StaticNestedClass instance = new Outer.StaticNestedClass();
内部类不能在某些规则下声明静态成员,请参阅here。
答案 1 :(得分:1)
与类方法和变量一样,静态嵌套类是 与其外层相关联。和静态类方法一样,a 静态嵌套类不能直接引用实例变量或 在其封闭类中定义的方法 - 它只能通过它来使用它们 对象引用。
注意:静态嵌套类与其实例成员进行交互 外部类(和其他类)就像任何其他顶级类一样。 实际上,静态嵌套类在行为上是顶级类 已经嵌套在另一个顶级类中进行打包 方便。使用封闭访问静态嵌套类 班级名称:
OuterClass.StaticNestedClass例如,为。创建一个对象 静态嵌套类,使用以下语法:
OuterClass.StaticNestedClass nestedObject =
new OuterClass.StaticNestedClass();