static是java語言中的關鍵字,表示“靜態的”,它可以用來修飾變量、方法、代碼塊等,修飾的變量叫做靜態變量,修飾的方法叫做靜態方法,修飾的代碼塊叫做靜態代碼塊。在java語言中凡是用static修飾的都是類相關的,不需要創建對象,直接通過“類名”即可訪問,即使使用“引用”去訪問,在運行的時候也和堆內存當中的對象無關。
有時你希望定義一個類成員,使它的使用完全獨立于該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創建這樣一個成員,它能夠被它自己使用,而不必引用特定的實例。在成員的聲明前面加上關鍵字static(靜態的)就能創建這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。你可以將方法和變量都聲明為static。static 成員的最常見的例子是main()。因為在程序開始執行時必須調用main() ,所以它被聲明為static。
聲明為static的變量稱為靜態變量或類變量。可以直接通過類名引用靜態變量,也可以通過實例名來引用靜態變量,但最好采用前者,因為后者容易混淆靜態變量和一般變量。靜態變量是跟類相關聯的,類的所有實例共同擁有一個靜態變量。
聲明為static的方法稱為靜態方法或類方法。靜態方法可以直接調用靜態方法,訪問靜態變量,但是不能直接訪問實例變量和實例方法。靜態方法中不能使用this關鍵字,因為靜態方法不屬于任何一個實例。