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

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

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

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    深入理解Java對象實例生成的例子

    class A { 
      public int Avar; 
      public A() { 
       System.out.println("AAA"); 
       doSomething(); 
      } 
    
      public void doSomething() { 
       Avar = 1111; 
       System.out.println("A.doSomething()"); 
      } 
    } 
    
    public class B extends A { 
      public int Bvar = 2222; 
      public B() { 
       System.out.println("BBB"); 
       doSomething(); 
       System.out.println("Avar=" + Avar); 
      } 
    
      public void doSomething() { 
        System.out.println("Bvar=" + Bvar); 
      } 
    
     public static void main(String[] args) { 
       new B(); 
     } 
    }
    
    講解:
    順序是這樣得,首先生成B就得先生成A(沒有父,哪來子)
    所以調用A的構造器,輸出AAA,
    然后調用方法dosomething,!!!
    注意:A的該方法被B覆蓋,
    而你生成的是B的對象,
    所以它調用B的方法,
    由于BVAR目前沒有給定值,
    所以自動初始化為0,
    然后生成B對象,
    先初始化變量BVAR,
    然后調用構造器輸出BBB,
    然后調用方法,
    這時BVAR已初始化,
    所以輸出BVAR=2222,
    而對象A中變量AVAR由于沒有調用對象A的方法dosomething,
    所以其值為0,則輸出0
    全部輸出就如下:


    ?????


    AAA
    Bvar=0
    BBB
    Bvar=2222
    Avar=0
    注意:初始化順序,當繼承時,先生成超類對象,生成對象時,先生成靜態變量,然后是一般變量,然后調用構造器!當所以超類對象生成后,生成本對象,順序一樣! 當方法被覆蓋時,調用目前對象的方法!這得注意。

    下面這個題目你能選對答案嗎?:

    What will happen when you attempt to compile and run the following code?
    
    class Base 
    {
        int i = 99;
        public void amethod()
        {
            System.out.println("Base.amethod()");
        }
            	
        Base()
        {
            amethod();
        }
    }
    public class Derived extends Base
    {
        int i = -1;
            
        public static void main(String argv[])
        {
            Base b = new Derived();
            System.out.println(b.i);
            b.amethod();
        }
    	
        public void amethod()
        {
            System.out.println("Derived.amethod()");
        }
    }
    
     A. Derived.amethod()
        -1
        Derived.amethod()
    
     B. Derived.amethod()
        99
        Derived.amethod()
    
    C. 99
        Derived.amethod()
    D.
        Compile time error
    

    posted on 2006-04-26 15:53 都市淘沙者 閱讀(249) 評論(1)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    評論

    # re: 深入理解Java對象實例生成的例子 2006-11-27 20:36 浪子

    好像是B吧,


    第一個例子好有收獲...  回復  更多評論   

    主站蜘蛛池模板: 亚洲福利电影一区二区?| 亚洲欧洲成人精品香蕉网| 亚洲欧洲日产国产最新| 无码精品人妻一区二区三区免费看| 亚洲伊人久久综合中文成人网| 国产午夜亚洲精品不卡电影| 韩国免费三片在线视频| 亚洲风情亚Aⅴ在线发布| 暖暖日本免费在线视频| 朝桐光亚洲专区在线中文字幕| 国产成人免费永久播放视频平台| 亚洲精品美女久久久久久久| 日韩免费电影在线观看| 亚洲国产区男人本色| 国产jizzjizz免费视频| 色多多A级毛片免费看| 国产AV无码专区亚洲AV手机麻豆| 中国好声音第二季免费播放| 亚洲av永久无码精品漫画| 免费国产黄网站在线观看| 亚洲国产精品久久网午夜| 国产精品视频免费一区二区| 亚洲国产欧美一区二区三区| 四虎亚洲国产成人久久精品| jzzjzz免费观看大片免费| 亚洲成av人片在线观看无码不卡| 91精品手机国产免费| 亚洲中文字幕久久精品无码A| 国产91久久久久久久免费| 久久国产精品免费| 亚洲视频在线观看不卡| 德国女人一级毛片免费| 青青草国产免费国产是公开| 亚洲精品国产成人片| 国产又黄又爽又猛免费app| 精品特级一级毛片免费观看| 久久久久一级精品亚洲国产成人综合AV区 | 在线播放高清国语自产拍免费| 色多多www视频在线观看免费| 亚洲an天堂an在线观看| 全免费a级毛片免费**视频|