Java學習第二十四天
一、今天干了什麼
static關鍵字
可以用來修飾:屬性、方法、程式碼塊、內部類、
(1)使用static修飾變數:靜態變數
靜態變數與例項變數的對比
例項變數:我們建立了多個物件,每個物件都獨立有一套類中的非靜態屬性。當修改其中一個物件中的非靜態屬性的時候,不會導致其他物件中同樣的屬性值發生改變。
靜態變數:我們建立了類的多個物件,多個物件共享一個靜態變數,當通過某一個物件修改靜態變數時,會導致其他物件呼叫此靜態變數時是被修改過的。
說明:
①靜態變數隨著類的增加而增加,可以通過“類.靜態變數”的方法進行呼叫;
②靜態變數的載入要早於物件的建立;
③由於類只會載入一次,靜態變數在記憶體中只會存在一份,存在方法區的靜態域中;
④是否可以通過類/物件呼叫變數
靜態變數 例項變數
類 可以 不可以
物件 可以 可以
(2)使用static修飾方法:靜態方法
說明:
①靜態變數隨著類的增加而增加,可以通過“類.靜態方法”的方法進行呼叫;
②是否可以通過類/物件呼叫方法
靜態方法 例項方法
類 可以 不可以
物件 可以 可以
③靜態方法中,只能呼叫靜態方法和靜態屬性;
非靜態方法中,既可以呼叫非靜態方法和屬性,也可以呼叫靜態的方法和屬性。
(3)開發中,一般什麼樣的屬性或方法要加static:
①屬性是可以被多個物件所共享的,不會隨著物件不同而不同;
②操作靜態屬性的方法,通常設定為static;
③工具類中的方法習慣上宣告為靜態方法(可以避免去構造物件)。
(4)提醒:
①與C/C++中的static不同,Java中的static關鍵字不會影響到變數或者方法的作用域。
②在C/C++中static是可以作用域區域性變數的,但是在Java中切記:static是不允許用來修飾區域性變數。
二、明天干什麼
學習單例設計模式、理解main()方法中的語法