靜態成員變數的語法特點

1. 靜態成員變數格式:static 類型變數名;,如:static int i;

2. 靜態成員變數可以利用「類名」來調用(即類名.成員變數,如Person.name = 張三;),其與一般的調用方式不同(即物件.成員變數),但靜態成員變數也可以使用一般的調用方法。

3. 多個物件皆共同使用「同一個」靜態成員變數,因此如p1物件將其從10改為20,而p2物件所取得的值也就會是20。相對的,普通的成員變數則是每新生成一個物件其所擁有的成員變數是各自的,即p1物件將成員變成從10改為20,而p2物件所取得的值還是原有的10

17_靜態成員變數架構示意圖.png 17_普通成員變數架構示意圖.png 17_範例_Person.png 17_範例_Main.png 17_範例_Main結果.png  

 

靜態函數的語法特點

1. 靜態成員函數格式:static <是否傳值之關鍵字> 函數名(){},例如:static void fun(){}

2. 靜態成員函數也是可以利用「類名」來調用(即類名.成員函數();,如Person.fun();)

3. 靜態成員函數中由於「不能使用this,所以也就不能直接使用「靜態成員變數」,因靜態成員函數可用類名來調用,因此在this.name的情況下,會不知道調用該函數的物件為何,所以會造成編譯上的錯誤。

 

靜態代碼塊的語法特點

1. 靜態代碼塊格式:static{[程式碼]}

2. 靜態代碼塊執行之時機:於裝載該類時會被執行,所以無論類中是否有main(主函數),皆會執行靜態代碼塊中的程式碼。

3. 靜態代碼塊的作用:用於幫靜態成員變數賦與初始值。  

 

 

arrow
arrow

    Elsa 發表在 痞客邦 留言(0) 人氣()