簡體   English   中英

Java中靜態嵌套類的成員

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM