static關鍵字定義與使用說明
1.static關鍵字使用範圍
static可以用來修飾:屬性、方法、代碼塊、內部類
2.static修飾屬性
- 使用static修飾屬性:靜態變量(或類變量)
- 實例變量:我們創建了類的多個對象,每個對象都獨立的擁有一套類中的非靜態屬性。當修改其中一個對象中的非靜態屬性時,不會導致其他對象中同樣的屬性值的修改。
- 靜態變量:我們創建了類的多個對象,多個對象共享同一個靜態變量。當通過某一個對象修改靜態變量時,會導致其他對象調用此靜態變量時,是修改過了的。
- static修飾屬性特性:
- 1.靜態變量隨着類的加載而加載。可以通過"類.靜態變量"的方式進行調用
- 2.靜態變量的加載要早於對象的創建。
- 3.由於類只會加載一次,則靜態變量在內存中也只會存在一份:存在方法區的靜態域中。
- static屬性訪問
- 類可以訪問static變量,不可以訪問實例變量。
- 對象可以訪問static變量,可以訪問實例變量。
3.static修飾方法
- 使用static修飾方法:靜態方法
- 隨着類的加載而加載,可以通過"類.靜態方法"的方式進行調用
- 靜態方法中,只能調用靜態的方法或屬性
- 非靜態方法中,既可以調用非靜態的方法或屬性,也可以調用靜態的方法或屬性
- 在靜態的方法內,不能使用this關鍵字、super關鍵字
- static方法訪問
- 類可以訪問static方法,不可以訪問非static方法。
- 對象可以訪問static方法,和非static方法
4.如何判斷是否使用static
在代碼開發過程中,什麼時候使用static修飾屬性和方法那?
- 如何確定一個屬性是否要聲明爲static的?
- 屬性是可以被多個對象所共享的,不會隨着對象的不同而不同的。
- 類中的常量也常常聲明爲static
- 如何確定一個方法是否要聲明爲static的?
- 操作靜態屬性的方法,通常設置爲static的
- 工具類中的方法,習慣上聲明爲static的。