equals方法
api中方法定义
所以要比较两个对象的相等性,不能使用==比较,应该使用equals方法比较;
所以需要在子类中重写equals方法
在开发中一般都需要根据具体需求重写equals方法
重写equals方法的步骤(1和2步的顺序不是固定的):
1、判断参数和调用函数的对象是否是同一个对象,如果是,直接返回true;否则,进行下一步;
2、判断参数是否为null,如果是,直接返回false,否则,进行下一步;
3、判断参数和调用函数的类型是否一直,如果不一致,直接返回false,否则进行下一步;
4、对参数强制向下转型为调用方法的对象所在的类型,然后根据需求比较两个对象的具体细节;
Object小结
1、作用:Object类是java中所有类的最高父类,描述的是所有类最共性的功能;可以使用Object类型的引用指向java中所有对象(包括数组);
2、toString方法:
作用:toString方法会返回一个对象的字符串的表示形式;在使用输出指令输出一个对象时,实际输出的就是这个对象调用toString方法返回的结果;一般开发中都要根据具体需求重写这个方法;
格式:public String toString()
3、equals方法
作用:用来比较两个对象的相等性的;使用 == 运算符比较两个变量,实际比较的是两个变量里面保存的内容;
所以对基本类型的变量来说, == 比较的是实际的常量值;对引用类型的变量来说,比较的是里面保存的引用地址;所以要比较两个数据的相等性,基本类型的数据可以直接使用 == 比较,引用类型的数据则需要使用equals方法;因为Object类中的实现是直接使用 == 比较两个对象的引用地址,所以一般开发中需要根据具体的需求重写equals方法;
格式:public boolean equals(Object obj)
重写equals方法的一般步骤(1和2步的顺序不是固定的):
1、判断传入的参数obj是否为null(obj == null),如果是,直接返回false;
2、判断传入的参数和调用方法的对象是否是同一个对象(this == obj),如果是,直接返回true;
3、判断传入的参数指向的对象所属的类和调用方法的对象的类是否相同(this.getClass() == obj.getClass()),如果不同,直接返回false;
4、将传入的参数obj强制向下转型为调用方法的对象所在的类型,然后比较两个对象中各个应该比较的成员变量的值是否相等(具体比较哪些成员变量的值,根据需求而定)