------- android培訓、java培訓、期待與您交流! ----------
1、static:(修飾內容被對象所共享,保存在靜態區中)
用法:是一個修飾符,用於修飾成員(成員變量,成員函數)。
當成員被靜態修飾後,就多了一個調用方式,除了可以被對象調用外,還可
以直接被類名調用。類名.靜態成員
2、static特點
1)隨着類的加載而加載
也就說:靜態會隨着類的消失而消失。說明它的生命週期最長。
2)優先於對象存在
明確一點:靜態是先存在,對象是後存在的
3)被所有對象共享
4)可以直接被類名所調用
缺點:由於生命週期過長,內存消耗過大。
3、實例變量和類變量的區別
1)存放位置
類變量隨着類的加載而存在於方法區中
實例變量隨着對象的建立而存在推內存中
2)生命週期
類變量生命週期最長,隨着類的消失而消失
實例變量生命週期,隨着對象的消失而消失
class car
{
string name;//成員變量,也稱實例變量
static string conutry;//靜態的成員變量,也稱類變量
}
4、靜態使用注意事項
1)靜態方法只能訪問靜態成員。
非靜態方法既可以訪問,又可以訪問非靜態的
2)靜態方法中不可以定義this,super關鍵字
因爲靜態優先於對象存在,所以靜態方法中不可以出現this。
5、靜態有利有弊
利處:對對象的共享數據進行單獨空間的存儲,節省空間,沒有必要每一個
對象中都存儲一份。
可以直接被類名調用。
弊端:生命週期過長。
訪問出現侷限性。(靜態只能訪問靜態)
6、public static void main(String[] args) args指arguments
7、主函數是固定函數的:jvm識別。
jvm在調用主函數時,傳入的是new String[0];
例:javac MainCar.java
java MainCar x y z =>就是將xyz分別存入args中。
8、什麼時候使用靜態
要從兩方面下手:
因爲靜態修飾的內容有成員變量和函數。
什麼時候定義靜態變量(類變量)呢?
當對象中出現共享數據時,該數據被靜態所修飾。
對象中的特有數據要定義成非靜態存在於堆內存中。
什麼時候定義靜態函數呢?
當功能內部沒有訪問到靜態數據(對象的特有數據),
那麼該功能可以定義成靜態的。
9、靜態的應用
每一個應用程序中都有共性的功能,可以將這些功能進行抽取,獨立封裝以
便複用
10、dos下尋找路徑
set classpath-.;c:\javas ->假設在c盤下的javas文件夾裏
11、一個類中默認會有一個空參數的構造函數
默認構造函數的權限是隨着類的變化而變化的
12、靜態代碼塊
格式:
static
{
靜態代碼塊中的執行語句。
}
特點:隨着類的加載而執行,只執行一次。{ new car();new car();只執行一次
static中代碼 },但是先於其他函數執行。
用於給類進行初始化的。
黑馬程序員 面向對象 static main
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章