《Java核心技术》P143~P238 除去P182~P201反射机制和P234~P238代理
1.this与super关键字并无相同点,虽然它们用法有时看起来相似。
this是一个指向当前对象的引用。
super并不指向某个对象,只是告诉编译器调用超类的某个方法。
2.对子类的引用不能赋给超类变量,对超类的引用可以赋给子类变量。另外继承时覆写(override)方法不能降低访问权限。
3.ArrayList(可作为不用预定义大小的数组)的方法:add,remove,get,set。同时数组的toString方法未覆盖,需要用Arrays.toString(数组名)调用
4.final:
final的数值类型和其包装器类型不能改变值
final的数组可以改变
final的变量指向的对象引用不能改变,但该引用的内容可以改变
final的类不能继承,方法不能覆盖
5.private static final修饰的内容采用的是静态绑定,其余内容采用的是动态绑定
6.equals方法:
equals方法要求,a.equals(b)=b.equals(a)。当a为b的超类的对象时,若equals使用instanceof判断b是否为a的类型时为真,判断a是否为b的类型时为假,将导致a.equals(b)为真,b.equals(a)为假。
7.正确的实现equals方法:
a.显示参数命名为otherObject
b.检测this与otherObject是否是指向一个对象(利用==符号),是则直接返回true
c.检测otherObject是否为null,否则直接返回false
d.比较this与otherObject是否为同一个类,若该类的子类中对equals有不同定义,则用equals
如果该类的子类对equals拥有统一的语义,使用instanceof
e.将otherObject转换为相应的类变量
f.对所有需要比较的域进行比较,视情况使用==或equals