public static class ViewHolder {
public int a,b;
public void method();
}
当我将类声明为静态时,方法和变量 a 和 b 默认是静态的,还是必须单独声明它们为静态的?我知道这是一个愚蠢的问题,但我现在有点困惑:(
public static class ViewHolder {
public int a,b;
public void method();
}
当我将类声明为静态时,方法和变量 a 和 b 默认是静态的,还是必须单独声明它们为静态的?我知道这是一个愚蠢的问题,但我现在有点困惑:(
不,默认情况下它们不是静态的,它们是普通的实例成员。
静态内部类,不像普通的内部类,可以有静态成员,但是,如果你显式声明它们。
不,当您声明一个内部静态类时,您指定声明本身是 static,因此您不需要父类的对象实例来访问它。
不涉及内部成员。
静态嵌套类的成员不是静态的。static
用 class 指定关键字,表示嵌套类可以用类似于静态数据成员的包含外部类来实例化。
BaseClass.StaticNestedClass nestedClass = new BaseClass.StaticNestedClass();
nestedClass.nonStaticMethod();//correct
BaseClass.StaticNestedClass.nonStaticMethod()//Error
这对作为普通类的静态嵌套类的数据成员没有影响。
请注意,如果static
关键字与 a 相关联,class
则该类必须是嵌套类
公共静态类的工作方式与任何其他类一样。唯一真正的区别是它是通过包含类访问的:
OuterClass.InnerClass foo = new OuterClass.InnerClass();