1. 接口
1.1 排序接口Comparable,内置方法 public int compareTo(T obj)
1.2 接口可以申明常量,一个类可以实现多个接口,但确只能集成一个类
1.3 Integer.MAX_VALUE: 整数最大值,在检查数值的时候需要
1.4 instanceof: 检查一个对象是否属于某个类或实现某个接口,compareTo: 两个对象比较
2. 对象克隆
2.1 拷贝和克隆区别
Employee original = new Employee("John Public", 5000);
Employee copy = original;
copy.raiseSalary(10); //原有对象和拷贝对象都发生变化
Employee copy = original.clone();
copy.raiseSalary(10); //原有对象不会发生变化
2.2 实现clone方法,必须实现Cloneable接口,使用public访问修饰符重新定义clone方法
3. 接口与回调
3.1 回调(callback): 定义一个对象,该对象需要每隔一段时间做具体的事情,然后new该对象,把这个对象传递给Timer,由Timer定义时间间隔,回调该对象的方法。
class TimePrinter implements ActionListener {
public void actionPerformed(ActionEvent event) {
Date now = new Date();
System.out.println("At the tone, the time is " + now);
Tookkit.getDefaultToolkit().beep();
}
}
ActionListener listener = new TimePrinter();
Timer t = new Timer(10000, listener); //每隔10秒打印一次
t.start();
4. 内部类
4.1 内部类可以访问外围类的域和方法,如果内部类有构造器,编译器将会对它进行修改,并添加一个外围类引用的参数
4.2 局部内部类: 可以在一个方法中定义局部类,局部类不能用public或private进行修饰,而且作用域被限定在该方法之内,局部类可以访问外围类的域,还可以访问局部变量,但是局部变量必须声明为final。
public void start(int interval, final boolean beep) {
class TimePrinter implements ActionListener {
public void actionPerformed (ActionEvent event) {......}
}
}
4.3 匿名内部类(anonymous): 只创建一个类的对象,不能有构造器。
public void start(int interval, final boolean beep) {
ActionListener listener = new
ActionListener {
public void actionPerformed (ActionEvent event) {......}
};
}
4.4 静态内部类: 把一个类隐藏在另一个类里面,并不希望内部类访问外围类对象
5. 代理
代理可以在运行时候创建一个实现了一组给定接口的新类,避免创建“stub”代码,在RMI调用中有用。
Object invoke(Object proxy, Method method, Object[] args) //定义代理对象调用方法执行的动作