IT十八掌作业_java基础第六天_接口与适配器模式、多态、内部类

[作业1]

------------------------------------

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

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

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

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

interface ButtonListener

{

abstract public void onClick();

abstract public void onDbClick();

abstract public void onKeyUp();

abstract public void onKeyDown();

}

//实现不常用的方法 --剩下就是常用的方法,让其子类去实现 ,故声明为抽象类

abstract class ButtonAdapter implements ButtonListener

{

public void onDbClick()

{

}

public void onKeyUp()

{

}

public void onKeyDown()

{

}

}

class Button

{

ButtonListener lst;

public void addButtonListener(ButtonListener lst)

{

this.lst = lst ;

}

//

public void click()

{

lst.onClick();

}

}

//class myListener extends ButtonAdapter

//{

// public void onClick()

// {

// System.out.println("Click...");

// }

//}

class InterfaceListenerDemo

{

public static void main(String[] args)

{

Button btn = new Button();

//myListener lst = new myListener();

//btn.addButtonListener(lst);

btn.addButtonListener(new ButtonAdapter(){

public void onClick()

{

System.out.println("匿名内部类 Click...");

}

});

btn.click();

Button btn2 = new Button();

btn2.addButtonListener(new ButtonAdapter(){

public void onClick()

{

System.out.println("第二个按钮 Click...");

}

});

btn2.click();

}

}

[作业2]

------------------------------------

阐述什么是多态。

为什么函数可以覆盖,而属性不能覆盖?

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

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

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

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

时间: 2024-11-20 22:00:40

IT十八掌作业_java基础第六天_接口与适配器模式、多态、内部类的相关文章

java基础第六天_接口与适配器模式、多态、内部类

[作业1] ------------------------------------ 使用抽象类和接口实现适配器模式设计.涉及的类和接口分别为ButtonListener(接口), 其中含有click() / dbclick() / keyUp() / keyDown()等方法. ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现. Button类中添加addListener(ButtonListener l)方法. 答: //按钮监听器接口 interfac

IT十八掌作业_java基础第八天_多线程

感觉大家对IT十八掌大数据的支持,今天的作业如下 1. 5辆汽车过山洞,依次经过山洞.每辆车通过山洞花费10秒,使用多线程实现. 2. 用多线程模拟蜜蜂和熊的关系. 蜜蜂是生产者,熊是消费者.蜜蜂生产蜂蜜是累加的过程,熊吃蜂蜜是批量(满100吃掉)的过程. 生产者和消费者之间使用通知方式告知对方.注意不能出现死锁的现象.

IT十八掌作业_java基础第23天_数据库连接池\反射

感谢大家对IT十八掌大数据的支持,今天的作业如下: 1.属性赋值 ------------- 1.Man{50+ } Man man = new Man(); man.setXxx1(...); man.setXxx2(...); ... 50 Man copy = new Man(); copy = man ; copy.setXxx1(man.getXxx1()); copy.setXxx1(man.getXxx1()); copy.setXxx1(man.getXxx1()); copy.

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

感谢大家对IT十八掌大数据的支持,今天的作业如下: 巩固java基础知识,安装虚拟机! --------------------------------------------------------------------------------------------------------答案略,自行练习

IT十八掌作业_java基础第25天_NIO

感谢大家对IT十八掌大数据的支持,今天的作业如下: 1.将NIO中的Socket通信过程使用图形进行描述和说明. 2.画图说明Runtime data area的内部结构. 3.阐述class的类加载过程. 4.反射和内省的异同,以及各自的优缺点. 5.阐述jvm中从堆和非堆的角度阐述jvm的内存结构.

IT十八掌作业_java基础第十七天_QQ案例

感谢大家对IT十八掌大数据的支持,今天的作业如下: 按照老师讲的,自己练习项目

IT十八掌作业_java基础第九天_多线程、自动拆装箱

1.蜜蜂和熊的生产消费关系,熊在蜂蜜满10斤吃掉.蜜蜂一次生产一斤蜂蜜,且蜜蜂生成一斤蜂蜜花费的时间是10s. 十只蜜蜂和两只熊. class Bee extends Thread{ private int bag; private static final int BAG_MAX = 20; private static final int ONCE = 5; private static final int TIME = 10 ; private Box box; private Strin

IT十八掌作业_java基础第三天_数组

/* 1.定义一个函数,函数功能是动态提取int[]中元素的最大值. 2.定义一个函数,从数组中查询指定的元素首次出现的位置. 3.定义函数,完成冒泡排序,大数下沉. 4.折半查找. 5.阐述 6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的. 7.遍历三维组数,横向输出三维数组的每一个层. 8.定义一个类:Dog 有名称 color age cry(); 9.阐述出来堆区,栈区,何时出现溢出,如何解决. 10.oop ------------

IT十八掌作业_java基础第七天_匿名内部类、异常、包和jar

利用白富美接口案例,土豪征婚使用匿名内部类对象实现. 2.定义三角形类Trianle,里面包含三个int类型属性,分别表示三条边的长度, 构造三角形对象时,任意两边之和是否大于第三边,如若不成立,抛出自定义异常. 3.Person类中增加birthday属性,对setBirthday(int ,int , int )方法进行异常处理, 要求年有效.月有效.日有效.年月日指定的具体日期有效,对不同情况分别抛出不同的异常. 4.将类定义到指定的包下.com.it18zhang,编译之后,打成jar文