首页 > 代码库 > Object类

Object类

Object类

Object类是所有类,数组,枚举类的父类,也就是说,java允许把任何类型的对象赋值给Object类型的
变量,当定义一个类是没有石油extends关键字为他显示指定父类时,则该类默认继承Object父类
因为所有的类都是Object类的子类,所有任何java对象都可以调用Object类的方法,Object类提供了如下的
几个常用的方法
1.boolean equals(Object obj):
判断指定对象与该对象是否相等,此处相等的标准是,两个对象是同一个对象
2.protected void finalized():当系统中没有引用变量引用到该对象时,垃圾回收器调用此方法来清理该对象的资源
3.Class<?> getClass():返回该对象的运行时类
4.int hashCode():返回该对象的hashCode()值,默认情况下,Object类调用hashCode()方法来根据该对象的地址
来计算,但很多类都重写了Object的hashCode()方法,不在根据地址来计算机hashCode()方法值
5.String toString():返回该对象的字符串表示
除此之外,Object类还提供了wait()方法,notify()方法,notifyAll()几个方法,通过这几个方法可以控制线程的
暂停和运行,java还提供了一个protected修饰的clone()方法,该方法用于帮助其他类来实现‘自我克隆‘(得到当前对象的一个副本,而且两者之间完全隔离)
class Address{
String detail;
public Address(String detail){
this.detail.detail;
}
}
//实现Cloneable接口
class User implements Cloneable{
int age;
Address address;
public User(int age){
this.age=age;
address=new Address("details");
}
//通过调用super.clone()方法来实现
public User clone()throw CloneNotSupportException{
return (User)super.clone();
}
}
public class CloneTest{
public static void main(Stringp[] args){
User u1=new User(23);
//Clone得到u1对象的副本
User u2=u1.clone();
//判断u1,u2是否相同
System.out.println(u1==u2);
}
}
//注意:Object类的clone()方法只是一种"浅复制"-它只克隆该对象的所有成员变量值,不会对引用类型
的变量进行克隆

Object类