黑馬程序員 面向對象 static main

------- 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中代碼 },但是先於其他函數執行。
      用於給類進行初始化的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章