1、java.lang.Object
java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。
Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。
Object类是Java中唯一没有父类的类,java.lang.Object类是所有类的根类。
Object类仅有一个空参的构造器 public Object(){}
其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
2、Object类中的方法
(1) 构造方法:public Object() (2) boolean equals(Object obj)
“==”运算符判断两个引用是否指向同一个对象。
对于Object类的equals()方法来说,它判断调用equals()方法的引用于传进来的引用是否一致,即这两个引用是否指向的是同一个对象。
Object类中的equals()方法如下:
public boolean equals(Object obj) {
return (this == obj);
}
即Object类中的equals()方法等价于==。只有当继承Object的类重写(override)了equals()方法之后,继承类实现了用equals()方法比较 两个对象是否相等,才可以说equals()方法与==的不同。
a、==
1、基本数据类型,根据基本数据类型的值判断是否相等,相等返回true,反之返回false
注:两端数据类型可以不同,在不同的情况下,也可以返回true。
2、引用数据类型:比较引用类型变量的地址是否相等
b、equals()
1、只能处理引用类型变量
2、在Object类,发现equals()任然比较的是两个引用变量的地址值是否相等
3、像String包装类、File类、Date类这些重写Object类的equals()方法,比较的是两个对象的“实体内容”是否完全相同
4、若自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的equals(Object obj)方法
(3)String toString()
当打印引用,如调用System.out.println()时,会自动调用对象的toString()方法,打印出引用所指的对象的toString()方法的返回值,因为每个类都直接或间接地继承自Object,因此每个类都有toString()方法。
Object类中的toString()方法定义如下:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
回像String类、Date类、File类、包装类都重写了toString()方法