美文网首页
equals()--java11(07/12/2015)

equals()--java11(07/12/2015)

作者: Girl_endless | 来源:发表于2015-12-14 10:00 被阅读17次

    private Account[] accounts;//属性声明为数组

    public Customer(String f, String l,Account[] accounts){//构造函数没有声明数组

    firstName = f;

    lastNameString = l;

    this.accounts = new Account[5];//构造函数中的初始化

    }'

    Object类是所有java类的根父类。

    对于符号“==”:

    1、基本数据类型。根据基本数据类型的值判断是否相等,相等返回true,否则返回false。

    两种数据类型可以不同,在不同的情况下也可以返回true。

    2、引用数据类型比较引用类变量的地址是否相等。


    重写equals()方法的使用场合:由于==和equals比较的都是两个变量或者对象的地址值,但是有些情况下,我们只需要知道两个对象的内容是否相等就好了,而不必仅通过地址就给其下结论,这个是时候就需要重写equals方法,而不是直接调用object的equals方法。

    注:对于集合,有一个接口set,它有一个实现类HashSet,这个集合可以往里面存储元素,但其只能存放相同的元素,而对于元素是否相同的判断,便需要使用equals方法。所以当一个类需要往集合当中存放时,该类一定要重写object的equals方法。

    对于equals():

    1、只能处理引用类变量

    2、在object类,发现equals()仍然比较的是两个引用变量的地址是否相等。

    3、像String 包装类 File类 Date类,这些重写object()的equals()方法,比较的是两个对象的“实体内容”是否相等。

    4、若想比较两个对象的属性是否相等,则需要重写object()类的equals()方法。              

    例如:手动生成

    public boolean equals(Object obj){

          if(this == obj){//当前对象的引用与形参是一样的。两个都是一个地址值。

                 return true;}

          if(obj instanceof Person){//判断形参obj是否是order的一个实例

                   Person p = (Person)obj;

                   return this.name == p.name && this.age == p.age;

            }else{

                   return false;}

    手动生成并不严密,开发的时候,可以自动生成。

    相关文章

      网友评论

          本文标题:equals()--java11(07/12/2015)

          本文链接:https://www.haomeiwen.com/subject/svmshttx.html