<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 20, 文章 - 0, 評(píng)論 - 0, 引用 - 0
    數(shù)據(jù)加載中……

    [導(dǎo)入]Static和Final修飾類屬性變量及初始化

    1.static修飾一個(gè)屬性字段,那么這個(gè)屬性字段將成為類本身的資源,public修飾為共有的,可以在類的外部通過test.a來訪問此屬性;在類內(nèi)部任何地方可以使用.如果被修飾為private私有,那么只能在類內(nèi)部使用.


     

    public class Test{
    public static int a;
    private Test(){
    a
    =0;
    }

    }

     

     

    如果屬性被修飾為static靜態(tài)類資源,那么這個(gè)字段永遠(yuǎn)只有一個(gè),也就是說不管你new test()多少個(gè)類的對象,操作的永遠(yuǎn)都只是屬于類的那一塊內(nèi)存資源.例如:


     

    Test t1=new Test();
    t1.a
    =10;
    Test t2
    =new Test();
    System.out.println(t1.a);
    System.out.println(t2.a);
    System.out.println(Test.a);

     

     

    結(jié)果是3個(gè)0


    2.final 用于聲明屬性,方法和類,分別表示屬性一旦被分配內(nèi)存空間就必須初始化并且以后不可變,方法一旦定義必須有實(shí)現(xiàn)代碼并且子類里不可被覆蓋,類一旦定義不能被定義為抽象類或是接口,因?yàn)椴豢杀焕^承。


    而你的代碼里對final修飾的屬性進(jìn)行了修改,所以錯(cuò)誤.


    3. 被final修飾而沒有被static修飾的類的屬性變量只能在兩種情況下初始化:


    a.在它被定義的時(shí)候,例:

     

     

    public class Test{
    public final int a=0;
    private Test(){
    }

    }

     

     

    b.在構(gòu)造函數(shù)里初始化,例:

     

     

    public class Test{
    public final int a;
    private Test(){
    a
    =0;
    }

    }


     

     

    4.同時(shí)被final和static修飾的類的屬性變量只能在兩種情況下初始化:


    a.在它被定義的時(shí)候,例:

     

     

    public class Test{
    public final int a=0;
    private Test(){
    }

    }


     

     

    b.在類的靜態(tài)塊里初始化,例:

     

     

    public class Test{
    public final int a;
    static{
    a
    =0;
    }

    }


     

     

    5.分析第三第四原因:


    第三條:當(dāng)這個(gè)屬性被修飾為final,而非static的時(shí)候,它屬于類的實(shí)例對象的資源,當(dāng)類被加載進(jìn)內(nèi)存的時(shí)候這個(gè)屬性并沒有給其分配內(nèi)存空間,而只是定義了一個(gè)變量a,只有當(dāng)類被實(shí)例化的時(shí)候這個(gè)屬性才被分配內(nèi)存空間,而實(shí)例化的時(shí)候同時(shí)執(zhí)行了構(gòu)造函數(shù),所以屬性被初始化了,也就符合了當(dāng)它被分配內(nèi)存空間的時(shí)候就需要初始化,以后不再改變的條件.


    第四條:當(dāng)類的屬性被同時(shí)被修飾為static和final的時(shí)候,他屬于類的資源,那么就是類在被加載進(jìn)內(nèi)存的時(shí)候(也就是應(yīng)用程序啟動(dòng)的時(shí)候)就要已經(jīng)為此屬性分配了內(nèi)存,所以此時(shí)屬性已經(jīng)存在,它又被final修飾,所以必須在屬性定義了以后就給其初始化值.而構(gòu)造函數(shù)是在當(dāng)類被實(shí)例化的時(shí)候才會(huì)執(zhí)行,所以用構(gòu)造函數(shù),這時(shí)候這個(gè)屬性沒有被初始化.程序就會(huì)報(bào)錯(cuò).而static塊是類被加載的時(shí)候執(zhí)行,且只執(zhí)行這一次,所以在static塊中可以被初始化.

     




    文章來源:http://www.tkk7.com/supercrsky/articles/169574.html

    posted on 2009-04-10 13:20 天天開源 閱讀(114) 評(píng)論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 欧洲精品免费一区二区三区| 亚洲人成小说网站色| 亚洲一区AV无码少妇电影| 中文字幕亚洲电影| 国产精品免费无遮挡无码永久视频 | 亚洲乱码中文字幕综合| 日韩免费毛片视频| 国产精品日本亚洲777| 亚洲一区中文字幕在线观看| 免费观看国产小粉嫩喷水| 久久成人永久免费播放| 99ri精品国产亚洲| 国产亚洲精品影视在线产品| 国产一级高清视频免费看| 四虎国产精品免费久久| 曰批全过程免费视频网址| 中文字幕日本人妻久久久免费| 亚洲麻豆精品果冻传媒| 最新国产AV无码专区亚洲 | 亚洲国产精品一区二区久| 亚洲电影一区二区| 亚洲国产精品一区二区成人片国内 | 亚洲国产日韩一区高清在线| 亚洲人成影院在线无码按摩店| 亚洲人成网站在线观看青青| 免费成人黄色大片| 亚洲成AⅤ人影院在线观看| 免费大黄网站在线观看| 成人伊人亚洲人综合网站222| 久久99热精品免费观看牛牛| 中文字幕a∨在线乱码免费看| 国产免费久久久久久无码| 一个人看www免费高清字幕| 一级毛片aaaaaa视频免费看| 一级日本高清视频免费观看| 中文字幕的电影免费网站| 光棍天堂免费手机观看在线观看| 在线观看肉片AV网站免费| 一区二区三区观看免费中文视频在线播放 | 人妻丰满熟妇无码区免费| 13一14周岁毛片免费|