1.java.lang.Object类是所有其它java类的根父类。即:所有的其他类都直接或间接的继承于Object类
2.当一个类没有显式的声明一个父类时,那么其直接父类就是java.lang.Object
3.Object类中定义的方法可以被子类所继承,那么意味着Object类中定义的方法具有一定的通用性。
我们在这里重点讨论两个方法。
1).equals(Object obj):
1.只能通过引用类型的变量来调用
2.当我们调用一个对象的equals()方法时,如果此方法调用的是java.lang.Object类的equals()方法的话,仍然比较的是两个对象的引用地址是否相同。
如下为java.lang.Object类中的源码:
public boolean equals(Object obj) {
return (this == obj);
}
3.像String,File,包装类,Date类都重写了java.lang.Object中的equals()方法,比较两个对象"实体内容"是否相等。
4.对于自定义类,可以重写java.lang.Object类中的equals()方法,比较两个对象的属性是否完全相等。
自定义的:重写equals()方法
比较两个对象(this,obj)的各个属性是否都相等,若都相等,返回true。
2)toString():
1.当我们打印一个对象的引用时,实际上就是调用这个对象的toString()
2.当我们没有重写java.lang.Object类中的toString()方法时,返回就是当前对象的所在类及其在内存中的地址值。
如下为java.lang.Object类中的toString()的源码:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
3.像String,File,Date,包装类等类已经重写了java.lang.Object类中的toString(), 返回对象的属性信息。
4.对于自定义类,我们也可以重写java.lang.Object类中的toString(),返回对象的属性信息