qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          Java中的靜態(tài)變量、靜態(tài)方法與靜態(tài)代碼塊

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

            其中靜態(tài)代碼在類的初始化階段被初始化。而非靜態(tài)代碼則在類的使用階段(也就是實(shí)例化一個(gè)類的時(shí)候)才會(huì)被初始化。

            靜態(tài)變量

            可以將靜態(tài)變量理解為類變量(與對(duì)象無(wú)關(guān)),而實(shí)例變量則屬于一個(gè)特定的對(duì)象。

            靜態(tài)變量有兩種情況:

            ● 靜態(tài)變量是基本數(shù)據(jù)類型,這種情況下在類的外部不必創(chuàng)建該類的實(shí)例就可以直接使用

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

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

            靜態(tài)方法

            與類變量不同,方法(靜態(tài)方法與實(shí)例方法)在內(nèi)存中只有一份,無(wú)論該類有多少個(gè)實(shí)例,都共用一個(gè)方法。

            靜態(tài)方法與實(shí)例方法的不同主要有:

            ● 靜態(tài)方法可以直接使用,而實(shí)例方法必須在類實(shí)例化之后通過(guò)對(duì)象來(lái)調(diào)用。

            ● 在外部調(diào)用靜態(tài)方法時(shí),可以使用“類名.方法名”或者“對(duì)象名.方法名”的形式。實(shí)例方法只能使用后面這種方式。

            ● 靜態(tài)方法只允許訪問(wèn)靜態(tài)成員。而實(shí)例方法中可以訪問(wèn)靜態(tài)成員和實(shí)例成員。

            ● 靜態(tài)方法中不能使用this(因?yàn)閠his是與實(shí)例相關(guān)的)。

            靜態(tài)代碼塊

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

          static {
          //靜態(tài)代碼塊中的語(yǔ)句
          }

            靜態(tài)代碼塊主要用于類的初始化。它只執(zhí)行一次,并在main函數(shù)之前執(zhí)行。

            靜態(tài)代碼塊的特點(diǎn)主要有:

            ● 靜態(tài)代碼塊會(huì)在類被加載時(shí)自動(dòng)執(zhí)行。

            ● 靜態(tài)代碼塊只能定義在類里面,不能定義在方法里面。

            ● 靜態(tài)代碼塊里的變量都是局部變量,只在塊內(nèi)有效。

            ● 一個(gè)類中可以定義多個(gè)靜態(tài)代碼塊,按順序執(zhí)行。

            ● 靜態(tài)代碼塊只能訪問(wèn)類的靜態(tài)成員,而不允許訪問(wèn)實(shí)例成員。

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 三台县| 镇安县| 浑源县| 保山市| 博爱县| 尉氏县| 进贤县| 高青县| 宕昌县| 安丘市| 延寿县| 米泉市| 汤阴县| 庐江县| 伊宁市| 固镇县| 会宁县| 永顺县| 古浪县| 永济市| 淮安市| 普安县| 临沧市| 垣曲县| 娄烦县| 深泽县| 墨江| 永和县| 绍兴市| 繁昌县| 镶黄旗| 师宗县| 祥云县| 安徽省| 黑龙江省| 梁河县| 通化县| 商城县| 佛坪县| 忻城县| 巍山|