Object类是类层次结构的根,是java类中唯一没有父类的类。java中所有的类都继承Object中的方法。
Object方法
protected Object clone()
使用这个方法的类必须实现java.lang.Cloneable接口
Cloneable接口没有任何方法,只需要加上implements即可,否则会抛出CloneNotSupportedException异常
boolean equals(Object obj)
判断两个引用是否指向同一个对象
int hashCode()
如果两个对象通过equals判断相同,那他们有相同的hashCode(),如果equals判断不同 ,他们的hashCode可以不同也可以相同
String toString()
public String toString()
{
return getClass().getName+"@"+Integer.toHexString(hashCode())
}
==和equals区别
==比较的是地址,equals比较的是对象内容
boolean equals(Object obj)
equals方法用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的.
如果一个类没有自己定义equals方法,它默认的equals方法(从Object类继承的)就是使用==操作符,也是比较两个变量指向的对象是否是同一个对象
如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可以认为两个对象的内容是相同的。