接口,抽象类,事件的理解:
接口:
1、定义接口的关键字是interface,即是把平常的public class 类名{}
改为-->public interface 接口名{}
其实接口也是一种特殊的类:
特殊点:1、访问修饰符 只有public(且是默认的,也可以不写)
2、可以定义内容:
常量:public static final 数据类型 常量的名字=值;
final static 数据类型 常量名 = 值;
数据类型 常量名 = 值;
public static final可以省略不写,因为也是是默认的
注意:常量的名字要都是大写的字母
调用常量:接口名.常量名进行调用
抽象方法:public abstract 返回值类型 方法名(数据类型 参数名);不能有{}
abstract 返回值类型 方法名([数据类型 参数名,...]);
返回值类型 方法名([数据类型 参数名,...]);
public abstract都可以去掉,因为也是默认的。
3、继承: 接口不能继承类,只能继承继承接口,可同时继承多个接口(用,隔开)
public interface 接口名 extends 接口,... {}
注:类不可以同时继承多个父类-->单继承
4、创建对象: 不能创建对象,因为没有构造器
5、关键字:interface
接口要再写个类进行实现 关键字:implements
public class 类名 implements 接口名{}
再写的这个类必须要实现接口中所有的抽象方法才可以
但此时的implements不能再写了,如果接口继承的父类里也有
抽象方法,再写的这个类也要实现
注意:一个类只能先继承一个类再实现接口,不能反过来,这是Java里的规则
public class 类名 extends 类或者抽象类 implements 接口,... {}
其实实现也是一种继承关系
接口有什么用呢?它可以一次实现多个接口,也可以用到以后的团队合作中
接口与类的不同点:
1、接口:可以实现多个接口,abstract,定义内容只有常量和抽象方法,访问修饰符-->只有public,不能创建对象
2、类:只能继承一个类,class,定义内容-->定义属性、定义构造方法、定义普通方法。访问修饰符-->public、
默认的,protected、private,可以创建对象对象
抽象类:
abstract
访问修饰符 abstract 抽象类名{}
可以定义常量,public public static final 常量类型。。。
可定义属性,构造方法,抽象方法,普通方法
可以继承类或抽象类,然后再实现接口
public abstract class 抽象类名 extends 类或者抽象类 implements 接口,... {}
四种访问修饰符都可以使用、其实,抽象类可看做类和接口的集合
注意:抽象类不能创建对象(因为里面有抽象方法)
如果继承了接口或抽象类,可以不实现接口中的抽象方法,因为
抽象类里可以存在抽象方法,如果父类的构造器被重写,子类至少调用一个父类的构造器
如果父类里有默认的构造器,子类可以不调用父类的,因为子类也有一个默认的构造器
事件机制:
事件源:Java中所有的图形界面组件都可成为事件源,
比如说按钮、标签等各种容器元素,动作发生在哪一个控件上,那么该控件就是事件源对象。
事件监听器方法:来监听事件源上有无动作发生,并作出相应反应
就是说用来监听事件源上不同的动作的发生,当相应监听器方法监听到动作后,会自动
调用相应的事件接口或事件抽象类的对象进行处理。
事件接口或事件抽象类:
事件接口或者事件抽象类就是当事件监听器方法监听到动作之后,会调用事件
接口或者事件抽象类,因为他们不能创建对象、所以要重写一个类来实现事件接口或事件抽象类
常用的事件监听器:
keylistener:监听键盘的按下和释放操作、按键得到值
ActionListener 监听器类似按钮控件的点击操作,类似输入框控件的回车操作
MouseListener 监听鼠标的进入,离开,按下,释放和单击操作
MouseMotionListener 监听鼠标的拖动和移动操作
add监听器(监听器对象,要把监听器加到相应的事件源上);
addActionListener(ActionListener l)
addMouseListener(MouseListener ml)
addMouseMotionListener(MouseMotionList ll);
addKeyListener(KeyListener kl)