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

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

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

    編程生活

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      113 隨筆 :: 0 文章 :: 18 評論 :: 0 Trackbacks

    如下代碼會出問題
    public class C {
        private String c1;

        private String c2;

        public void setC1(String c1) {
            this.c1 = c1;
        }

       public String getC1() {
            return this.c1;
        }

        public void setC2(String c2) {
            this.c2 = c2;
        }

       public String getC2() {
            return this.c2;
        }
    }

    public abstract class A extends Composite {
        public A(Composite parent, int style) {
            super(parent, style);
            createMainBody(parent);
            createOtherBox();
        }
        
        protected abstract void createMainBody(Composite parent);
        protected abstract void createOtherBox(Composite parent);
    }

    public class B extends A{
        private Text b1 = null; //VE生成的
        ...
        private C c = new C();

        public B(Composite parent, int style) {
            super(parent, style);
        }
        
        protected void createMainBody(Composite parent) {
            b1 = new Text(parent, SWT.NONE);
            b1.addModifyListener(new ModifyListener() {
                public void modifyText(ModifyEvent e) {
                    c.setC1(b1.getText());
                    fireFormDataChange();
                }
            });
            b1.setText("Hello...");
            ...
        }
        ...
    }
    一運行代碼出錯了,經過調試才發現B初始化時,在super(..)執行完之前并沒有初始化本類(這是對的),自己的代碼實現有問題.
    注意:類初始化時,首先初始化父類,再初始化本類的變量聲明部分,初始化父類時如果回調到子類的某些類的實現,而這些實現方法又完成了對聲明變量的創建,再回來初始化本類時,如果聲明變量有初始值,又會將這些變量設置到初始值狀態,因此,會發現這些變量無法訪問了.一切都是對的,只是自己太相信VE生成的代碼了.
    改動很簡單,只是將
    public class B extend   A { 
        private Text b1;    
        ...
        private C c;

        public B(Composite parent, int style) {
            super(parent, style);
        }
        
        protected void createMainBody(Composite parent) {
            c = new C();
            ...
        }
    }
    好,這樣就一切OK.類的初始化過程的學習還是很重要的.

    posted on 2007-11-06 09:09 wilesun 閱讀(637) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 福利片免费一区二区三区| 亚洲AV无码久久精品色欲| 亚洲情A成黄在线观看动漫软件| 色欲aⅴ亚洲情无码AV蜜桃| 成全视频免费高清 | 免费国产黄网站在线观看动图| 18pao国产成视频永久免费| 亚洲黄色免费网站| 2022久久国产精品免费热麻豆| 亚洲成色999久久网站| 中文字幕成人免费视频| 亚洲国产精品成人精品小说| 国产乱码免费卡1卡二卡3卡| 亚洲午夜福利在线视频| 深夜国产福利99亚洲视频| 免费视频精品一区二区| 亚洲精品无码不卡在线播HE| 蜜桃视频在线观看免费视频网站WWW| 久久香蕉国产线看观看亚洲片| 日韩精品免费在线视频| 亚洲精品国产电影午夜| 成人无码区免费视频观看| 免费人成网站永久| 亚洲国产精品一区二区第一页 | 在线观看片免费人成视频播放 | 午夜亚洲国产理论秋霞| 亚洲免费闲人蜜桃| 亚洲AV无码一区二区一二区 | 在线中文高清资源免费观看| 牛牛在线精品免费视频观看| 久久久久亚洲精品成人网小说| 最近2022中文字幕免费视频| 亚洲成在人线在线播放无码 | 亚洲国产精品成人久久| 曰曰鲁夜夜免费播放视频| 在线亚洲v日韩v| 亚洲电影中文字幕| 日本一道一区二区免费看 | 人妻无码一区二区三区免费| 亚洲人成色777777精品| 亚洲女同成av人片在线观看 |