接口
为什么要使用接口?
我们都知道,在Java中,可以使用类的继承来简洁的完成拥有定义相同属性、相似方法类的操作。但是类的继承面临一个问题,一个子类无法继承自多个父类,所以引入接口概念。一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
接口的定义
- 接口其实就是一种特殊的类,定义接口的关键字:interface
- 格式:
public interface 接口 extends 接口,... {
//定义常量 注意:Java提倡的常量名全部大写 public static final 数据类型 常量名 = 值;
//定义抽象方法
public abstract 返回值类型 方法名(数据类型 参数名,...)
}
接口中只能定义常量和抽象方法!
- 注意:
- 1.接口只有一个访问修饰符public。
- 2.接口默认会提供public、static、final、abstract关键字。(即可以省略不写)
- 3.接口是不允许实例化对象的。(只能定义常量和抽象方法,没有构造方法)
接口的实现
- 实现接口的关键字:implements
- 格式:
public class 类名 extends 类名 implements 接口,... {
//类必须要实现接口中所有的抽象方法(包括接口的父接口中的抽象方法)
}
显而易见接口是一种特殊的类,我们定义类实现接口实际就是类继承了接口,所以接口是用来丰富类的继承关系。
事件机制
事件源对象
- 有哪些内容可以成为事件源对象?
所有的容器组件和元素组件都可以成为事件源对象。 - 如何确定谁是事件源对象?
你的动作发生在哪一个组件上,那么该组件就是事件源对象。
事件监听方法
- 事件源对象
.addActionListener(ActionListener l)
; - 动作事件监听方法,这个方法会捕获按钮上的鼠标点击动作和输入框中的回车键动作;如果有这样的动作方法,此方法会捕获动作,交给
ActionListener
参数对象进行处理,对象会调用对应的方法,执行方法中的代码。
事件接口
ActionListener
动作事件接口
actionPerformed(ActionEvent e)
动作事件的处理方法
接口是不能实例化对象,所必须要定义类实现这个接口,实现(重写)接口中的抽象方法。
Swing界面
关于图形界面
首先,Java中存在大量的图形界面源代码根据它们所储存的包名称不同,大体可以分为:
AWT组件
- 这些类是位于java.awt包下
- AWT组件是依赖于操作系统的绘图机制实现的,这样不同平台上