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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開發(fā)
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    Static和Final修飾類屬性變量及初始化

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


     

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

    }

     

     

    如果屬性被修飾為static靜態(tài)類資源,那么這個字段永遠只有一個,也就是說不管你new test()多少個類的對象,操作的永遠都只是屬于類的那一塊內(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);

     

     

    結果是3個0


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


    而你的代碼里對final修飾的屬性進行了修改,所以錯誤.


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


    a.在它被定義的時候,例:

     

     

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

    }

     

     

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

     

     

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

    }


     

     

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


    a.在它被定義的時候,例:

     

     

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

    }


     

     

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

     

     

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

    }


     

     

    5.分析第三第四原因:


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


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

     



    posted on 2007-12-22 15:45 々上善若水々 閱讀(1053) 評論(0)  編輯  收藏 所屬分類: J2SE

    主站蜘蛛池模板: 亚洲片一区二区三区| 国产免费人成视频在线观看| AV在线播放日韩亚洲欧| 国产精品亚洲专区一区| 午夜两性色视频免费网站| 国产成人亚洲精品| 免费电影在线观看网站| 亚洲人成电影青青在线播放| 97性无码区免费| 亚洲国产91在线| 在线免费观看a级片| 狠狠综合亚洲综合亚洲色| 四虎影视永久免费观看地址| 高潮毛片无遮挡高清免费| 亚洲精品天堂成人片?V在线播放| 一个人免费观看日本www视频 | 午夜免费福利视频| 亚洲伊人tv综合网色| 亚洲免费福利在线视频| 亚洲色中文字幕在线播放| 免费99热在线观看| 精品在线免费观看| 亚洲成年人电影在线观看| 成年女人免费v片| 一级免费黄色毛片| 一区二区三区亚洲| 免费高清小黄站在线观看| 在线播放免费人成视频网站| 久久亚洲综合色一区二区三区| 蜜臀98精品国产免费观看| 亚洲高清乱码午夜电影网| 亚洲色婷婷综合开心网| 蜜桃成人无码区免费视频网站 | 亚洲av无码国产精品夜色午夜| 最近中文字幕mv免费高清在线| 亚洲日韩精品无码专区| 精品亚洲一区二区三区在线播放| 99爱免费观看视频在线| 久久无码av亚洲精品色午夜 | 午夜亚洲福利在线老司机| 老司机69精品成免费视频|