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

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

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

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數據加載中……

    小議final關鍵字

    作者:Flyingis

          final
    Java語言中一個很微妙的關鍵字,而使用它通常出于兩種理由:設計與效率。我們可以對數據成員、方法和類使用final關鍵字。
       
    final數據的聲明是為了告訴編譯器有一塊數據是恒定不變的。對于基本數據類型,編譯器可以將該常量值代入任何可能用到它的計算式中去,即可以在編譯時執行計算,這樣就減輕了一些運行時的負擔。在對這個常量進行定義的時候,必須對其進行賦值,當然也可以在類的構造函數中賦值。當對對象引用使用final聲明時,其含義容易讓人迷惑,因為對于對象的引用,final可以使引用恒定不變,它可以使該引用始終指向一個對象,但是,對象自身是可以被修改的,所以在這種情況下感覺final幾乎沒什么作用,數組也是對象,它也存在這種情況,通過下面這個例子說明:


    class Fruit {

      private final int[] m = {1, 2, 3};

      public static void main(String[] args) {

    Fruit f = new Fruit();

    for(int i = 0; i < m.length(); i++) {

      f.m[i]++;  //可以改變

    }

    f.m = new int[5];  //不能指向另外的一個對象,錯誤!

    }

    }

        對基本數據類型的數據使用
    final的另外一個用處就是可以做到根據對象的不同而使類的功能發生改變,例如:

    class Apple {

      private final int i;  //沒有初始化,需要在構造函數中賦值

      private static Random r = new Random();

      public Apple() {

        i = r.newInt(10);

    }

    public Apple(int j) {

      i += j;

    }

    }

        使用final方法,可以把方法鎖定,防止繼承類修改它。并且使用方法類在一般情況下可以提高效率,讓編譯器將針對該方法的所有調用都轉為內嵌式的調用,即以方法體中的實際代碼來代替方法調用的代碼,這樣就消除了方法調用的開銷。但是對于private類型的方法而言意義不大,因為private方法都已經被隱式的制定為final,如果繼承類試圖將該方法聲明為public/protected/默認的同名方法,將不能覆蓋基類中的方法,這樣做是聲明了一個新的方法,這是Java中的多態,但是也說明了private方法將不會起到什么作用。
       
    final類的設計是為了防止以后對該類進行變動,并不希望它有子類,在final類中所有的方法都隱式指定為final的,并且這些方法無法被覆蓋,而final類的字段將保持原義,不受final類的影響!

       
    這段時間在重新復習Java中的基本細節與概念,歡迎拍磚!共同學習!

    posted on 2005-10-28 21:50 Flyingis 閱讀(2372) 評論(1)  編輯  收藏 所屬分類: JavaSE

    評論

    # re: 小議final關鍵字  回復  更多評論   

    夯實基礎,勢在必行!
    2008-07-30 20:01 | Robert Hamming
    主站蜘蛛池模板: va天堂va亚洲va影视中文字幕| 免费人成再在线观看网站| 日韩国产免费一区二区三区| 亚洲国产视频久久| 亚洲综合色区在线观看| 最近中文字幕免费2019| 亚洲国产精品无码观看久久| 老司机亚洲精品影视www| 91嫩草免费国产永久入口| 免费亚洲视频在线观看| 亚洲韩国—中文字幕| 日韩成人免费aa在线看| 在线涩涩免费观看国产精品| 亚洲乱亚洲乱妇24p| 亚洲av无码乱码国产精品| 最近免费中文字幕视频高清在线看| 一区二区三区视频免费观看| 亚洲黑人嫩小videos| 免费一级毛片一级毛片aa| 亚洲成人在线网站| 国产免费av片在线播放| 大地影院MV在线观看视频免费| 亚洲日韩国产欧美一区二区三区 | 亚洲情综合五月天| 成年性午夜免费视频网站不卡| 两个人看的www高清免费视频| 亚洲熟女乱色一区二区三区| 亚洲AV永久无码精品| 免费jjzz在在线播放国产| 亚欧免费视频一区二区三区| 男女一边桶一边摸一边脱视频免费| 亚洲综合久久一本伊伊区| 国产AV无码专区亚洲AVJULIA| 免费一级毛片在播放视频| 免费看成人AA片无码视频羞羞网| 热99RE久久精品这里都是精品免费 | 亚洲精品123区在线观看| 亚洲乱码无码永久不卡在线| 噜噜嘿在线视频免费观看| 最近高清中文字幕免费| 国产免费AV片在线观看|