是默认静态内部类的成员静态在java中
问题描述:
public static class ViewHolder {
public int a,b;
public void method();
}
是默认静态方法和变量a和b当我声明类为静态或我必须单独声明它们是静态吗?我知道它noobish的问题,但我有点糊涂了,现在:(是默认静态内部类的成员静态在java中
答
没有,当你声明的内部静态类,您指定声明本身是静态,让你不需要的对象实例父类访问它
没有关于内部成员的申请。
答
不,他们不是在默认情况下静态的,他们是正常的实例成员。
静态内部类,不像正常的内部类, 可以有静态成员,不过,如果你明确地声明它们。
答
公共静态类与其他任何类一样工作。唯一真正的区别是它通过包含类访问:
OuterClass.InnerClass foo = new OuterClass.InnerClass();
答
静态嵌套类的成员不是静态的。 static
关键字是用类指定的,表示可以使用包含类的外部类与静态数据成员实例化嵌套类。
BaseClass.StaticNestedClass nestedClass = new BaseClass.StaticNestedClass();
nestedClass.nonStaticMethod();//correct
BaseClass.StaticNestedClass.nonStaticMethod()//Error
这对静态嵌套类的数据成员,其表现为普通的类没有影响。
请注意,如果一个static
关键字与class
关联,则类必须是一个嵌套类
你知道这意味着什么了一个内部类是静态的? – ControlAltDel 2012-04-20 19:31:20
我知道,因为我正在使用它...我正在研究android中的viewholder模式,它需要一个 – Nav 2012-04-20 19:38:13