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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大化| 茂名市| 六安市| 万宁市| 体育| 临澧县| 山丹县| 永胜县| 无极县| 保康县| 广汉市| 云龙县| 日喀则市| 历史| 浦城县| 永新县| 涟源市| 固镇县| 萝北县| 泽州县| 孝义市| 海原县| 万州区| 仙桃市| 四平市| 北辰区| 平南县| 阳曲县| 静宁县| 阜宁县| 合川市| 东乡| 安岳县| 尚义县| 湖南省| 凌云县| 云龙县| 乳源| 巩留县| 清苑县| 五常市|