qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Java中的靜態變量、靜態方法與靜態代碼塊

           我們知道類的生命周期分為裝載、連接、初始化、使用和卸載的五個過程。

            其中靜態代碼在類的初始化階段被初始化。而非靜態代碼則在類的使用階段(也就是實例化一個類的時候)才會被初始化。

            靜態變量

            可以將靜態變量理解為類變量(與對象無關),而實例變量則屬于一個特定的對象。

            靜態變量有兩種情況:

            ● 靜態變量是基本數據類型,這種情況下在類的外部不必創建該類的實例就可以直接使用

            ● 靜態變量是一個引用。這種情況比較特殊,主要問題是由于靜態變量是一個對象的引用,那么必須初始化這個對象之后才能將引用指向它。因此如果要把一個引用定義成static的,就必須在定義的時候就對其對象進行初始化。

          public class TestForStaticObject{
          static testObject o = new testObject (); //定義一個靜態變量并實例化
          public static void main(String args[]){
          //在main中直接以“類名.靜態變量名.方法名”的形式使用testObject的方法
          }
          }

            靜態方法

            與類變量不同,方法(靜態方法與實例方法)在內存中只有一份,無論該類有多少個實例,都共用一個方法。

            靜態方法與實例方法的不同主要有:

            ● 靜態方法可以直接使用,而實例方法必須在類實例化之后通過對象來調用。

            ● 在外部調用靜態方法時,可以使用“類名.方法名”或者“對象名.方法名”的形式。實例方法只能使用后面這種方式。

            ● 靜態方法只允許訪問靜態成員。而實例方法中可以訪問靜態成員和實例成員。

            ● 靜態方法中不能使用this(因為this是與實例相關的)。

            靜態代碼塊

            在java類中,可以將某一塊代碼聲明為靜態的。

          static {
          //靜態代碼塊中的語句
          }

            靜態代碼塊主要用于類的初始化。它只執行一次,并在main函數之前執行。

            靜態代碼塊的特點主要有:

            ● 靜態代碼塊會在類被加載時自動執行。

            ● 靜態代碼塊只能定義在類里面,不能定義在方法里面。

            ● 靜態代碼塊里的變量都是局部變量,只在塊內有效。

            ● 一個類中可以定義多個靜態代碼塊,按順序執行。

            ● 靜態代碼塊只能訪問類的靜態成員,而不允許訪問實例成員。

          posted on 2012-09-11 10:21 順其自然EVO 閱讀(647) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 呈贡县| 淮安市| 柳林县| 剑川县| 安顺市| 三原县| 封丘县| 宁河县| 安远县| 阳西县| 涞水县| 乐清市| 临湘市| 忻城县| 开平市| 焉耆| 芜湖县| 璧山县| 昌邑市| 抚远县| 锦州市| 西吉县| 色达县| 荥阳市| 绍兴县| 抚松县| 三都| 湾仔区| 荆州市| 东丽区| 甘洛县| 屯留县| 巴中市| 凤城市| 惠州市| 施秉县| 科技| 禄劝| 河源市| 株洲市| 丹寨县|