2012-04-20 107 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關聯,則類必須是一個嵌套類