Java中final關鍵字用在以下三種情況:
          1、聲明常量
          2、將某個方法聲明為final
          3、將某個類聲明為final
          第一種情況很簡單,而且它經常配合static使用,因為既然是常量,則對于所有實例都是
          一樣的,它不隨著實例而變化,所以將其聲明為static。但有一點需要注意,即當聲明了
          一個final的object reference時,注意,這時誰為常量?是reference本身還是referenc
          e指向的對象?答案是前者,例:
          public class Circle
          {
          private double rad;
          public Circle(double r)
          {
            rad = r;
          }
          public void setRadius(double r)
          {
            rad = r;
          }
          public double getRadius()
          {
            return rad;
          }
                    public static void main(String[] args)
                    {
                              private static final Circle p = new Circle(5);
                              p.setRadius(7);           //OK,因為p為常量,但它所引用的

                                                        //對象不是常量
                              p = new Circle(7);        //Error,改變了常量p的值
          }


          由于缺省情況下,classes所有的non-private,non-static函數都可以被子類所復寫(over
          ride),那么如何做才能阻止子類復寫某個函數呢?答案是將該方法聲明為final。例:

          public class Base
          {
          public void foo()
          {
           
          }
          public final void bar()
          {
           
          }
          }
          public class Derived extends Base
          {
          public void foo()
          {
           
          }
          /**
            * can't override the final method of base class
            */
          // public void bar()
          // {
          // 
          // }
          }


          那么關于final class,我想大家都可以猜出來了,對,它的目的就是防止它派生出子類,
          其實,它的作用等價于將該class里面的所有方法都聲明為final了?!锻辍?BR>
          posted on 2005-12-30 16:15 未來刀客 閱讀(1002) 評論(0)  編輯  收藏 所屬分類: Java技術

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 江华| 兴文县| 罗城| 韶山市| 酉阳| 莱州市| 怀柔区| 淅川县| 酒泉市| 竹溪县| 拉萨市| 沧州市| 嘉祥县| 弥渡县| 天全县| 南阳市| 邵阳市| 无棣县| 琼海市| 宜宾县| 衡阳市| 逊克县| 吴忠市| 中宁县| 隆回县| 古田县| 孟村| 布尔津县| 尼勒克县| 榕江县| 抚松县| 类乌齐县| 盐亭县| 蛟河市| 始兴县| 敦化市| 老河口市| 常熟市| 曲靖市| 西畴县| 合阳县|