public static class ViewHolder {
public int a,b;
public void method();
}
是默認靜態方法和變量a和b當我聲明類爲靜態或我必須單獨聲明它們是靜態嗎?我知道它noobish的問題,但我有點糊塗了,現在:(是默認靜態內部類的成員靜態在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