[英]Members of static nested class in java
如果我在Java的靜態嵌套類中定義一個成員變量,如下所示:
public class Outer {
public static class StaticNestedClass {
private int mMember = 3;
}
}
mMember將被解釋為靜態的,因為其類是靜態的? Java中的靜態嵌套類成員呢?
提前致謝。
不, static
一類不具有相同的含義static
上的字段。 字段mMember
是嵌套類StaticNestedClass
的私有實例字段。 您可以像使用任何其他頂級類一樣使用此嵌套類,只要您將其導入或參考其包含類即使用它即可。 Outer.StaticNestedClass。 例如,
import Outer.StaticNestedClass;
...
StaticNestedClass instance = new StaticNestedClass();
要么
import Outer;
...
Outer.StaticNestedClass instance = new Outer.StaticNestedClass();
內部類無法根據某些規則聲明靜態成員,請參見此處 。
從java 文檔
與類方法和變量一樣,靜態嵌套類與其外部類相關聯。 與靜態類方法一樣,靜態嵌套類不能直接引用其封閉類中定義的實例變量或方法-它只能通過對象引用來使用它們。
注意 :靜態嵌套類與它的外部類(和其他類)的實例成員進行交互,就像其他任何頂級類一樣。 實際上,靜態嵌套類在行為上是頂級類,為了包裝方便,該頂級類已嵌套在另一個頂級類中。 靜態嵌套類使用封閉的類名稱訪問:
OuterClass.StaticNestedClass例如,要為靜態嵌套類創建一個對象,請使用以下語法:
OuterClass.StaticNestedClass nestedObject =
new OuterClass.StaticNestedClass();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.