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

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

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

    靜態數據初始化 你 真的了解了嗎?構造方法的初始之后。。我又做錯了,太粗心了

      下面的程序輸出什么呢?  考慮下哦。。。。

    public class Test {
        
    public static final Test TEST = new Test();
        
    private final int belt;
        
    private static final int CURRENT_YEAR = Calendar.getInstance().get(Calendar.YEAR);
        
        
    public Test(){
            belt 
    = CURRENT_YEAR - 1930;
        }

        
    public int getBelt(){
            
    return belt;
        }

        
    public static void main(String []args) throws Exception{
            System.out.println(TEST.getBelt());
        }

    }

    可能你覺得應該是當前年- 1930, 例如:今年是2009,2009-1930= 79,運行結果真的是這樣嗎?
    你運行下,額,奇怪,居然是 -1930,  額,為什么呢??

      原來 首先其靜態域 被設置為缺省值, TEST先設置為null, belt設置為0 , 然后TEST構造器計算出來,但我們已經初始化belt了,
    belt被設置為final, 所以忽略了。。。 
    再來看下 下面一個簡單的例子,剛開始做的時候不仔細,哎,, 我錯了。。哎~!~ 希望大家不要跟我一樣啊。
     1 class Point {
     2     protected final int x, y;
     3     private final String name;
     4 
     5     Point(int x, int y) {
     6         this.x = x;
     7         this.y = y;
     8         name = makeName();
     9     }
    10 
    11     protected String makeName() {
    12         return "[" + x + "," + y + "]";
    13     }
    14     
    15     public final String toString(){
    16         return name;
    17     }
    18 
    19 }
    20 
    21 public class ColorPoint extends Point {
    22     private final String color;
    23     
    24     ColorPoint(int x, int y, String color){
    25         super(x,y);
    26         this.color = color;
    27     }
    28     protected String makeName() {
    29         return super.makeName()+":"+color;
    30     }
    31     
    32     public static void main(String[] args) {
    33         System.out.println(new ColorPoint(1,2,"abc"));
    34     }
    35     
    36 }

    運行結果:  [1,2]:null
    程序從main啟動,然后到 25行,super(x,y);   之后 到 第 8行   name = makeName();  再之后29行, return super.makeName()+":"+color;
    這里,方法被子類重載了,運行到26行  this.color = color;  最后結束, 當然輸出: [1,2]:null  

    posted on 2009-04-15 19:28 胡鵬 閱讀(233) 評論(1)  編輯  收藏 所屬分類: java基礎

    評論

    # re: 靜態數據初始化 你 真的了解了嗎? 2009-04-16 11:29 重慶理工小子

    final是常量,不是靜態數據。
    靜態是 static
    對于這個初始化,常量和變量的申明,可以看看我的這篇文章

    http://www.tkk7.com/shenang/archive/2009/04/13/265279.html  回復  更多評論   

    導航

    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    agile

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精精国产www视频在线观看免费| 中文字幕亚洲精品资源网| 亚洲国产精品日韩av不卡在线| 最刺激黄a大片免费网站| 亚洲AV无码成人精品区在线观看| 一个人免费观看视频在线中文| 亚洲人成人无码网www国产| 亚洲偷自拍另类图片二区| 丁香花免费完整高清观看| 亚洲人成黄网在线观看| 国产福利在线免费| 国产99在线|亚洲| 99re热免费精品视频观看| 亚洲无码一区二区三区| 日产乱码一卡二卡三免费| 亚洲av无码无线在线观看| 国产一级高清视频免费看| 免费无毒a网站在线观看| 国产亚洲AV夜间福利香蕉149 | 69堂人成无码免费视频果冻传媒| 亚洲沟沟美女亚洲沟沟| 免费中文熟妇在线影片| 国产成人亚洲精品91专区高清| 亚洲福利精品一区二区三区| 三级黄色免费观看| 亚洲精品456在线播放| 日韩高清在线免费观看| 一级一级毛片免费播放| 亚洲国产精品自在在线观看 | 国产三级免费观看| 男女一边桶一边摸一边脱视频免费 | 亚洲精品无码专区| 亚洲国产成人精品91久久久| 成在线人视频免费视频| 亚洲成综合人影院在院播放| 国产免费久久精品| 久久综合九色综合97免费下载| 亚洲一卡一卡二新区无人区| 亚洲乱码日产精品a级毛片久久| 人妻在线日韩免费视频| 亚洲人成片在线观看|