corejava5
2016-02-08 15:50:45 4 举报
AI智能生成
CoreJava第五章 java核心技术
作者其他创作
大纲/内容
超类子类
关键词extends
调用父类方法或构造方法super
多态性(方法重名解决方案:动态绑定)
提取实际类型的方法表
搜索定义方法签名的类(实际调用的类)
调用方法
阻止继承final
final类:不允许扩展
final方法:子类不能覆盖
类型检查instanceof
抽象类abstract:不能实例化
抽象方法:不用具体实现
Object所有类的超类
equals方法
设计原则
自反性x.equals(x)返回true
对称性y.equals(x)和x.equals(y)返回相同
传递性x.equals(y)返回true,y.equals(z)返回true,x.equals(z)也返回true
一致性x,y对象引用没有发生变化,反复调用x.equals(y)结果相同
建议
显示参数命名为otherObject
检测this与otherObject是否引用同一个对象if(this==otherObject) return true;
为空对象? if(otherObject==null) return false;
同一个类? if(getClass() != otherObject.gerClass()) return false;
是否与继承关系? if(!(otherObject instanceof ClassName)) return false;
比较域ClassName other =(ClassName)otherObject;return field1==other.field1;
==区别
==只比较对象的引用
hascode方法
string散列码有内容导出
对象默认散列码为存储地址
toString方法
泛型数组
ArrayList
ArrayList()
add()
size()
ensureCapacity(int capacity)
trimToSize()
toArray()复制数组
remove(n)删除元素
a.get(i)访问元素,同a[i]
包装器类
包装类
Boolean类
Integer类
Long类
Float类
Double类
Short类
Byte类
Character类
Void类
自动装箱
list.add(3)自动变换成list.add(Interger.valueOf(3));
可变参数
Object... args
枚举类
public enum Siza{ SMALL, MEDIUM, LARGE ,EXTRA_LARGE}
反射(分析类能力的程序)
class
getClass() 返回class对象
forName() 返回class对象
T.class
方法
getName() 类名
newInstance() 创建实例
getModifiers() 修饰词
getMethods() 方法
getFields() public域,字段
getDeclaredFields() 所有域
getDeclaredConstructors() 所有构造方法
constructor
getModifiers() 返回修饰词
getParameterTypes() 返回参数类型Class[]
method
getModifiers() 返回修饰词
getParameterTypes() 返回参数类型Class[]
getReturnType() 返回类型class
field
getName() 名字
getModifiers() 返回修饰词
getType() 定义类型class
调用任意方法
method.invoke(Obj,Obj... args)
0 条评论
下一页