一、object类
1. API 及 Object 类概述
- API(Application Programming Interface)
- Java API
- Java提供的封装好的类,只需学习这些类的使用即可
- Object 类概述
- 超类,继承层次中的根节点,所有类都直接或间接的继承自它
- 构造方法
2. Object 类 hashcode()方法
- 格式:public native int hashCode();
- 作用:返回调用对象的哈希码值,哈希码值会根据对象的物理地址来计算,可以理解为对象的逻辑地址
- 参数:无
- 返回值类型:十进制整型
3. Object 类 getClass()方法
- 格式:public final native Class<?> getClass();
- 作用
- 返回调用对象的运行时类
- 可以获得对象的真实类的全名称
- native
4. Object 类 toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- 也可以在类中对该方法进行重写,来返回该类的所有的成员变量
5. Object 类 equals()方法
public boolean equals(Object obj) {
return (this == obj);
}
- 默认比较的是两个引用指向的对象是否是同一个对象,但是可以重写,来比较两个对象里面存的成员变量的值是否相等
- ==与equals()方法的区别
- ==进行的是值比较,也就是说,如果是基本数据类型,比较的是数值是否相等,如果是引用数据类型,比较的是对象的地址值是否相等
- equals()方法只能用于引用数据类型间,用来比较两个引用存放的地址是否一致
6. Object 类 clone()方法
protected native Object clone() throws CloneNotSupportedException;
- 注意
- 因为clone()方法的修饰符是受保护的,在使用时,让类重写该方法,并将修饰符改为public
- Cloneable接口只是一个接口,并没有实际的方法
- clone()方法适用于对象的浅克隆
- 对象的浅克隆不会用到构造方法
- 对象浅克隆与深克隆
- 当一个对象的成员变量是另一个类的对象时
- 浅克隆就是只将当前对象克隆一份,当前对象内引用类型的成员变量只克隆地址,而不克隆引用类型成员变量指向的对象。用clone()方法实现
- 深克隆就是向设计到的对象都克隆一份。用IO流来实现