類變數:形如static int a; 顧名思義,類變數可以理解為類的變數,類變數在類載入的時候就已經給它分配了記憶體空間,不同於實例變數(int a; ),實例變數是在該類創建對象的時候分配記憶體的。並且,每創建一個對象,就會為該實例變數分配相應的記憶體空間,而類變數它不屬於任何一個對象,它為所有對象所 ...
類變數:形如static int a; 顧名思義,類變數可以理解為類的變數,類變數在類載入的時候就已經給它分配了記憶體空間,不同於實例變數(int a; ),實例變數是在該類創建對象的時候分配記憶體的。並且,每創建一個對象,就會為該實例變數分配相應的記憶體空間,而類變數它不屬於任何一個對象,它為所有對象所共用,所有對象的類變數占用相同的一處記憶體空間。調用類變數過程中,可以用 類名.類變數 也可以 對象名.類變數 來調用。類變數同於C/C++中接觸的static變數,有記憶功能。
類方法:static void show(); 和類變數一樣,類方法也是屬於該類的,在類載入的時候,就為該類方法分配了入口地址,而實例方法,只有在對象創建後才被分配入口地址。同樣的,類方法可以被所有對用調用,可以用 類名.類方法 或者 對象名.類方法 來調用。實例方法只能有對象名來調用。但要註意的是類方法不可以調用實例變數,這是因為,類方法是在類載入的時候被分配的,而這個時候,可能還沒有創建對象來為實例變數來分配記憶體空間,即實例變數可能還不存在,所以不可以用類方法來調用實例變數。實例方法可以調用所有的實例變數和類變數。
實例變數和實例方法都是在對象消亡是才釋放記憶體空間,類變數和類方法直到程式運行結束退出才釋放所有的記憶體空間。