<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国产成人免费观看视频| 日韩a级毛片免费视频| 亚洲色大成网站www久久九| 免费精品人在线二线三线区别| 亚洲性69影院在线观看| 成人免费AA片在线观看| 亚洲国产系列一区二区三区| 免费无码黄动漫在线观看| 亚洲Av永久无码精品黑人| 午夜老司机免费视频| 国产亚洲视频在线观看| 亚洲性久久久影院| 成人无码视频97免费| 亚洲成AV人片一区二区| 在线日本高清免费不卡| 亚洲av午夜精品无码专区| 日韩免费观看的一级毛片| 91视频精品全国免费观看| 久久99国产亚洲高清观看首页| 亚洲色成人四虎在线观看| 免费A级毛片无码无遮挡内射| 精品日韩99亚洲的在线发布 | 五月天婷婷免费视频| 国产亚洲精品看片在线观看| 国产精品免费一区二区三区四区| 亚洲一区二区三区不卡在线播放| 国产成人亚洲精品狼色在线| 最近中文字幕无吗免费高清| 久久成人免费电影| 2022免费国产精品福利在线| 亚洲乱亚洲乱妇24p| 亚洲成a人片在线观看中文!!!| 国产亚洲成人在线播放va| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 免费日韩在线视频| 91情侣在线精品国产免费| 国产精品免费无遮挡无码永久视频| 野花视频在线官网免费1| 亚洲性无码一区二区三区|