<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://m.tkk7.com/shenang/archive/2009/04/13/265279.html  回復  更多評論   

    導航

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

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    agile

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费看黄网站在线看| 亚洲日韩久久综合中文字幕| 一级毛片在线免费视频| 免费无码又爽又刺激毛片| 中国china体内裑精亚洲日本| 四虎在线成人免费网站| 久久精品国产亚洲av水果派 | 亚洲第一香蕉视频| xxxx日本免费| 77777亚洲午夜久久多喷| 丁香花免费高清视频完整版| 亚洲乱码日产精品BD在线观看| 无码一区二区三区AV免费| 香蕉大伊亚洲人在线观看| 成人国产mv免费视频| 黄页网站在线免费观看| 亚洲精品乱码久久久久久自慰| 日韩免费电影网址| 亚洲国产一区在线观看| 女人18一级毛片免费观看| 亚洲AV无码一区东京热| 色www免费视频| 亚洲精品99久久久久中文字幕| 在线观看亚洲AV日韩AV| 国产大片91精品免费看3| 国产大片免费天天看| 2022年亚洲午夜一区二区福利| 亚洲阿v天堂在线2017免费| 亚洲bt加勒比一区二区| 日韩吃奶摸下AA片免费观看| 亚洲宅男永久在线| 国产成人A在线观看视频免费| 色婷婷精品免费视频| 4480yy私人影院亚洲| 在线日韩av永久免费观看| 男女一进一出抽搐免费视频 | 暖暖免费中文在线日本| 亚洲一区二区三区首页| 免费一看一级毛片全播放| 精品熟女少妇a∨免费久久| 亚洲AV无码乱码在线观看裸奔 |