回覆列表
  • 1 # 落盡繁花iu落葉紛飄

    靜態內部類

    我們所知道static是不能用來修飾類的,但是成員內部類可以看做外部類中的一個成員,所以可以用static修飾,這種用static修飾的內部類我們稱作靜態內部類,也稱作巢狀內部類.特點:不能使用外部類的非static成員變數和成員方法

    解釋:非靜態內部類編譯後會預設的儲存一個指向外部類的引用,而靜態類卻沒有。

    簡單理解:

    即使沒有外部類物件,也可以建立靜態內部類物件,而外部類的非static成員必須依賴於物件的呼叫,靜態成員則可以直接使用類呼叫,不必依賴於外部類的物件,所以靜態內部類只能訪問靜態的外部屬性和方法。

  • 2 # 使用者779349957040

    非靜態成員也叫成員變數,二者區別如下 : 1、名稱上的區別 成員變數也叫例項變數;靜態變數也叫類變數。 2、記憶體儲存的區別 成員變數儲存到堆記憶體的物件中,靜態變數儲存到方法區的靜態區中。 3、生命週期不同 成員變數隨著物件的出現而出現,隨著物件的消失而消失。靜態變數隨著類的出現而出現,隨著類的消失而消失。 靜態資料成員和普通資料成員區別較大,體現在下面幾點: (1)普通資料成員屬於類的一個具體的物件,只有物件被建立了,普通資料成員才會被分配記憶體。而靜態資料成員屬於整個類,即使沒有任何物件建立,類的靜態資料成員變數也存在。 (2)因為類的靜態資料成員的存在不依賴與於任何類物件的存在,類的靜態資料成員應該在程式碼中被顯式地初始化,一般要在類外進行,例如上例。在C++11標準中,我們可以為靜態成員提供const整數型別的類內初始值,不過要求靜態成員必須是字面值常量型別的constexpr(源自C++Primer中文版270頁)。

  • 中秋節和大豐收的關聯?
  • 用42萬買新款奧迪A6L划算嗎?