10.9-Object类
Java默认继承object类,Java类都继承了object类的属性及方法
toString()
默认返回值为string类型 类名全称@0x(hashcode值)
例子
package day10_9;
import java.util.Arrays;
public class ObjectDemo {
public static void main(String[] args) {
int[] ary = {1,2,3};
//此处默认调用了object类中的toString方法
System.out.println(ary/*.toString()*/);
//输出ary数组的内容
System.out.println(Arrays.toString(ary));
}
}equals()
与==作用相同,均为比较引用地址是否相等
引用相等:比的是对象的引用地址,比得是是否为同一个对象
对象相等:比的是对象中的数据,比的是对象中的内容
注意:一般情况下,在子类中需要重写equals(),以实现对象内容(对象数据)的比较
覆盖规则:
自反性:自己与自己比结果要返回true
x.equals(x)->true对称性:
x.equals(y)->truey.equals(x)->true传递性:
x.equals(y)->truey.equals(z)->truez.equals(x)->true一致性:
x.equals(y)一开始的结果为true,后期只要不对x, y的属性做出任何的修改,再次使用x.equals(y)结果依旧为true
hashCode()
原则上不同的对象调用object类中的hashcode()返回的值是不同的
hashCode()要与equals()一同覆盖当两个对象
equals()比较为true时,应该具有相同的hashCode值当两个对象
equals()比较为false时,应具有不同的hashCode值hashCode值要稳定,一个对象创建以后就不应该再发生变化
一般使用对象的OID值作为hashCode值,OID是对象的唯一编号,在项目中都是根据数据生成一个OID,就是数据库的主键(唯一约束性)
综合例子
最后更新于