您的位置:首页 > 移动开发 > Objective-C

Object类

2014-11-27 21:36 363 查看
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类