阅读更多
第六章
6.1接口
接口是对类的一组描述,接口决不能含有实力域和实现方法。应该由实现接口那个类来完成。
让类实现接口:将类声明为实现给定的接口,对接口中的所有方法进行定义。
class Employee implements Comparable
Employee类需要提供compareTo方法。
接口中的方法自动为public,实现是必须写为public。
可以声明接口的变量,接口变量必须引用实现了接口的类的对象。
接口中的域(常量)自动被public static final。
java不支持多继承,主要原因是多继承会让语言本身变得非常复杂,效率也会降低。利用接口机制来实现多继承的大部分功能。
对象克隆:当拷贝一个变量时,原始变量和拷贝变量引用同一个对象,因此改变一个变量所引用的对象将会对另一个变量产生影响。
Employee or = new Employee();
Employee co = or.clone();
这样改变co不会改变or。
回调(callback)是一种常见的程序设计模式。在这种模式中,可以指出某个特定事件发生时应该采取的动作。
定时器
class TimePrinter implements ActionListener
{
public void actionPerformed(ActionEvent e) {
Date now = new Date();
System.out.println("time is"+now);
Toolkit.getDefaultToolkit().beep();
}
}
ActionListener listener = new TimePrinter();
Timer t = new Timer(10000,listener);
t.start();
内部类(inner class),定义在另一个类中的类.
内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据。
内部类可以对同一个包中的其他类隐藏起来。
定义回调函数使用匿名内部类比较便捷。
局部类不能用public或private访问说明符进行声明,他的作用域限定在声明这个局部类的块中。
局部类访问局部变量,必须声明为final。
匿名内部类,加入只创建这个类的一个对象就不必命名了。
ActionListener l = new ActionListener()
{
plapla.
}
静态内部类。求最大值最小值,只遍历一次数组。
定义一个包含两个值的类,写一个方法返回类的对象,等于返回俩个值。
代理(proxy),利用代理可以在运行时创建一个实现了一组给定接口的新类。
看不懂。。