Java基础-第6天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础-第6天相关的知识,希望对你有一定的参考价值。

1. 适配器模式

    如果接口中的方法较多,而使用接口的时候却只关心其中的一个或者几个方法(关心的方法较少),

    如果采用常规手段,就需要对每个方法都加以实现。可以创建一个类型来实现接口,对不关心的方法进行

    空实现,对关心的方法保持不变。定义的新类继承抽象类后,将所关心的方法加以实现即可。

    此种模式就称为适配器模式。常用于UI设计中的按钮点击事件的处理中。

    --作业练习:

    使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),

        其中含有click() / dbclick() / keyUp() / keyDown()等方法。

        ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。

        Button类中添加addListener(ButtonListener l)方法。

    //按钮监听器接口

        interface ButtonListener {

            public void onClick(); //单击事件                   

            public void onDbclick(); //双击事件                   

            public void onKeyDown(); //按键按下                       

            public void onKeyUp(); //按键释放

        }       

        //按钮监听器适配器

        abstract class ButtonAdapter implements ButtonListener {

            public void onDbclick(){}               

            public void onKeyUp(){}       

            public void onKeyDown(){}

        }

        //继承适配器       

        class MyListener extends ButtonAdapter {

            public void onClick() {

                System.out.println("i click one !");

            }

        }

        //       

        class YourListener extends ButtonAdapter {

            public void onClick() {

                System.out.println("you click one !");

            }

        }

        //按钮

        class Button {

            //按钮的监听器

            private ButtonListener listener;

            // 添加监听器

            public void addListener(ButtonListener lsn) {

                this.listener = lsn;

            }

            // 模拟单击事件

            public void click() {

                // 处理单击事件

                listener.onClick();

            }

            // 模拟双击事件

            public void dbClick() {

                listener.onDbclick();

            }

        }

        //测试类       

        class AdapterDemo {

            public static void main(String[] args) {

                //button1

                Button btn1 = new Button();

                MyListener l = new MyListener();

                btn1.addListener(l);

                btn1.click();

                //button2

                Button btn2 = new Button();

                YourListener yl = new YourListener();

                btn2.addListener(yl);

                btn2.click();

            }

        }   

2. 多态

    多种形态。某一类事物的多种存在形态。

    对继承的类来讲,使用父类类型引用子类的对象。

    对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。

    为什么函数可以覆盖,而属性不能覆盖?属性是资产,容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。


以上是关于Java基础-第6天的主要内容,如果未能解决你的问题,请参考以下文章

06_Java基础语法_第6天(自定义类ArrayList集合)_讲义

IT十八掌作业_java基础第26天_Java基础总结/虚拟机基础

Java基础-第7天

Java基础-第5天

第8天 Java基础语法

第5天 Java基础语法