2012-04-20 131 views
1
public static class ViewHolder { 

     public int a,b; 
      public void method(); 


    } 

是默认静态方法和变量a和b当我声明类为静态或我必须单独声明它们是静态吗?我知道它noobish的问题,但我有点糊涂了,现在:(是默认静态内部类的成员静态在java中

+1

你知道这意味着什么了一个内部类是静态的? – ControlAltDel 2012-04-20 19:31:20

+0

我知道,因为我正在使用它...我正在研究android中的viewholder模式,它需要一个 – Nav 2012-04-20 19:38:13

回答

2

没有,当你声明的内部静态类,您指定声明本身是静态,让你不需要的对象实例父类访问它

没有关于内部成员的申请。

6

不,他们不是在默认情况下静态的,他们是正常的实例成员。

静态内部类,不像正常的内部类, 可以有静态成员,不过,如果你明确地声明它们。

0

公共静态类与其他任何类一样工作。唯一真正的区别是它通过包含类访问:

OuterClass.InnerClass foo = new OuterClass.InnerClass(); 
1

静态嵌套类的成员不是静态的。 static关键字是用类指定的,表示可以使用包含类的外部类与静态数据成员实例化嵌套类。

BaseClass.StaticNestedClass nestedClass = new BaseClass.StaticNestedClass(); 
nestedClass.nonStaticMethod();//correct 
BaseClass.StaticNestedClass.nonStaticMethod()//Error 

这对静态嵌套类的数据成员,其表现为普通的类没有影响。

请注意,如果一个static关键字与class关联,则类必须是一个嵌套类