抽象類和接口的Damon

damon

在主界面創(chuàng)建方法引用onCreate(),onDestory()贺纲。主界面上顯示按鈕控件竿痰,控件要顯示背景顏色损晤,邊框顏色以及點(diǎn)擊按鈕所執(zhí)行的操作软棺。而控件上要顯示標(biāo)題,以及定義標(biāo)題顏色尤勋。在主界面實(shí)現(xiàn)控件時(shí)喘落,要使用接口。


界面按鈕

碼代碼(先自己碼再借鑒)

創(chuàng)建的類和接口

Activity

package damo;

import java.util.ArrayList;

/**
 * 界面抽象類
 */
public abstract class Activity {
    //保存界面所有子視圖
    public ArrayList<View> childs=new ArrayList<>();
    //創(chuàng)建界面
    public abstract void onCreate();

    //銷毀界面
    public abstract void onDestory();

    //將子控件添加到當(dāng)前界面
    //接受:父類接受
    //訪問(wèn):強(qiáng)制轉(zhuǎn)換對(duì)應(yīng)類
    public void addChild(View v){
        if (v instanceof Button){
            Button btn=(Button)v;
            System.out.println(btn.title+"顯示到界面上了");
        }

        if (v instanceof ImagView){
            ImagView iv=(ImagView)v;
            System.out.println(iv.picture+"的圖片顯示到界面上了");
        }

        //保存
        childs.add(v);
    }
}

Button

package damo;

/**
 * 創(chuàng)建按鈕類
 */
public class Button extends View{
    String title;
    String titleColor;

    public Button(String title,String titleColor){
        this.title=title;
        this.titleColor=titleColor;
    }
}

ImagView

package damo;

public class ImagView extends View{
    String picture;
    public ImagView(String picture){
        this.picture=picture;
    }
}

MainActivity

package damo;

/**
 * 主界面
 */
public class MainActivity extends Activity implements View.OnClickListener{
    Button btn;
    ImagView img;

    //構(gòu)造方法
    public MainActivity(){
        //當(dāng)界面被創(chuàng)建就自動(dòng)調(diào)用onCreate
        onCreate();
    }
    @Override
    public void onCreate() {
        //如何布局
        //添加一個(gè)按鈕
        Button btn=new Button("分享","紅色");
        //添加一張圖片
        ImagView img=new ImagView("周杰倫");
        //將創(chuàng)建的控件添加到當(dāng)前界面
        addChild(btn);
        addChild(img);

        //1.
        //控件監(jiān)聽(tīng)事件 就必須實(shí)現(xiàn)監(jiān)聽(tīng)事件的接口
        //告訴按鈕是誰(shuí)在監(jiān)聽(tīng)這個(gè)事件
        btn.listener=this;

        //2.
        //給ImgView添加一個(gè)事件
        img.listener=new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("圖片被點(diǎn)擊了");
            }
        };
    }
    //模擬觸摸
     public void touch(){
        //將屏幕被觸摸的事件傳達(dá)給按鈕
         btn.getTouchEvent();
         img.getTouchEvent();
    }
    @Override
    public void onDestory() {
        //銷毀之前需要做什么
    }

    //當(dāng)事件觸發(fā)了 就回來(lái)調(diào)用這個(gè)方法
    @Override
    public void onClick(View v) {
        System.out.println("按鈕被點(diǎn)擊了");
    }
}

View

package damo;

/**
 * 管理視圖顯示和事件監(jiān)聽(tīng)
 * 什么情況下需要將一個(gè)父類做出抽象類
 * 1.不能直接創(chuàng)建這個(gè)類的對(duì)象
 * 2.這個(gè)類里面的某些方法還不知如何實(shí)現(xiàn)
 */
public class View {
    //使用視圖都共有的屬性
    String BGColor;
    String BKColor;

    //記錄誰(shuí)想監(jiān)聽(tīng)這個(gè)事件
    //暫時(shí)不知 但是知道其肯定要實(shí)現(xiàn)這個(gè)接口
    OnClickListener listener;


    //使用視圖都監(jiān)聽(tīng)事件
    //定義內(nèi)部接口 封裝
    public interface OnClickListener{
        //定義一套規(guī)范 約束外部使用這些方法來(lái)監(jiān)聽(tīng)事件
        public abstract void onClick(View v);

    }
    //控件接收觸摸事件
    public void getTouchEvent(){
        //調(diào)用監(jiān)聽(tīng)者里面的onClick方法
        listener.onClick(this);
    }
}

myclass

package damo;

public class myclass {
    public static void main(String[] args) {
        //啟動(dòng)
        MainActivity main=new MainActivity();
        //模擬觸摸
        main.touch();
    }
}

結(jié)語(yǔ)

打碼一時(shí)爽最冰,一直打一直爽瘦棋。總之堅(jiān)持不懈才能取得勝利暖哨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赌朋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沛慢,老刑警劉巖服球,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異颠焦,居然都是意外死亡斩熊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)伐庭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粉渠,“玉大人,你說(shuō)我怎么就攤上這事圾另“灾辏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵集乔,是天一觀的道長(zhǎng)去件。 經(jīng)常有香客問(wèn)我,道長(zhǎng)扰路,這世上最難降的妖魔是什么尤溜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮汗唱,結(jié)果婚禮上宫莱,老公的妹妹穿的比我還像新娘。我一直安慰自己哩罪,他們只是感情好授霸,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著际插,像睡著了一般碘耳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上框弛,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天辛辨,我揣著相機(jī)與錄音,去河邊找鬼功咒。 笑死愉阎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的力奋。 我是一名探鬼主播榜旦,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼景殷!你這毒婦竟也來(lái)了溅呢?” 一聲冷哼從身側(cè)響起澡屡,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咐旧,沒(méi)想到半個(gè)月后驶鹉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铣墨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年室埋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伊约。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡姚淆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屡律,到底是詐尸還是另有隱情腌逢,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布超埋,位于F島的核電站搏讶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏霍殴。R本人自食惡果不足惜媒惕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望繁成。 院中可真熱鬧吓笙,春花似錦、人聲如沸巾腕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)尊搬。三九已至,卻和暖如春土涝,著一層夾襖步出監(jiān)牢的瞬間佛寿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工但壮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冀泻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓蜡饵,卻偏偏與公主長(zhǎng)得像弹渔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溯祸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容