構造代碼塊、this關鍵字、靜態變量、靜態代碼塊、主函數

 

1、構造代碼塊:
  做用:給對象進行初始化。
  特色:對象一經運行就執行(與變量聲明時賦初值同級別,此處注意 非法前向引用)
    優先於構造函數的執行。
  與構造函數的區別: 構造代碼塊是給全部對象統一初始化。 通常給全部對象的共性屬性的初始化。
        構造函數是給對應對象進行初始化。jvm

2、this關鍵字。
  做用:指向this所在函數所屬的對象 (哪一個對象調用了this所在的方法,this就指向哪一個對象)。
  應用:當在定義類中的功能時,該函數的內部要用到調用該函數的對象時,便用this來表示這個對象。
    (當以第一人稱在闡述一個類的功能時, 在須要用到 「我」 或者 「個人」 的時候,此處便使用this關鍵字來表示。)
  注意:在類有多個重載構造方法的時候,能夠在一個構造方法中使用 this(實參) 的語句調用其餘構造方法 且 其要在第一句(可是要在super後。)
    在初始化中還有初始化的時候, 要先執行內部的初始化 以後再執行本身的初始化。因此要放在第一行函數

3、靜態變量

  說明:使用 static 修飾的。 咱們知道,在方法內部的變量放於棧內存(stack)中, 而類中的成員變量放於堆內存中(heap), 而咱們被static修飾的成員變量存放於
    靜態數據段(data segmet)中, 其在類中一個定義(當有繼承的時候,能夠有靜態重寫,使得一個類就有了多個,使用與靜態綁定理論)只有一個。全部的該類
    對象公有一個該變量(也就是說,私有的成員屬性是不能用靜態修飾的),使用類名和對象名皆可訪問此變量。

  注意:static只能修飾成員,不能修飾局部。
    能夠被類名和對象共同調用。
    靜態方法只能訪問靜態成員, 而非靜態方法能夠訪問靜態成員。
    由於靜態成員優先於對象(有了對象纔有非靜態出現),因此靜態方法中不能出現this super等關鍵字。
    主函數是靜態的。

  總結特色:1)、隨着類的加載 在data segment中被加載。(生命週期長)

        2)、優先於對象的存在。

          3) 、被全部的對象共享。

        4)、能夠直接被類名調用。
  優缺點:
      優勢: 節約空間 能夠被直接調用。
      缺點: 訪問侷限性 生命出現侷限性。

  何時使用靜態:
      當全部的對象共享屬性的時候,該屬性能夠寫爲靜態(如中國人的國籍)。
      當某個方法不涉及到類的動態 成員的時候,能夠寫成靜態,(每一個人都會哭,仍是一樣的哭),
this

4、靜態代碼塊對象

  特  點:隨着類的加載而加載,隨着類的結束而結束(存在時間一樣長)blog

  格  式:static 繼承

      {生命週期

          靜態代碼塊中的語句。內存

      }ci

  做  用:給類初始化用的字符串

5、主函數
  主函數:是一個特殊的函數,做爲被jvm調用的入口函數。
  定 義:主函數是固定格式的,被jvm識別: public static void main(String[] args){}.
  特 點:jvm在調用主函數的時候,給主函數傳入一個 new String[0]; 啓動jvm的時候能夠給字符串傳入字符串參數,以後能夠操做這些數據。
      for example : Java 類名 參數1 參數2 參數3....

 

6、Exercise :

  定義一個person類,其中包括了國籍、姓名、性別、年齡等成員屬性, 還有比較本身與別人或者別人與別人的年齡的大小得功能,
    一個會哭的初始功能 和 調用功能。

相關文章
相關標籤/搜索