黑马程序员技术交流社区

标题: equals 在原始父类 Object 中比较的是对象的地址值? [打印本页]

作者: 飞舞的指尖    时间: 2016-9-25 10:58
标题: equals 在原始父类 Object 中比较的是对象的地址值?
equals 在原始父类 Object 中比较的是对象的地址值, 但是
      if(p.name.equals(this.name) && p.age==this.age){
                                 return true;
      }
如果用equals比较对象中的姓名属性,那么此时equals比较的是什么?

老司机,help me
作者: langyabang1110    时间: 2016-9-25 11:47
方法重写了   比较的是名字这个属性是否一样

作者: Jarc    时间: 2016-9-25 16:46
在String类下的equals方法重写了object类的方法,比较内容
作者: 飞舞的指尖    时间: 2016-9-25 16:49
langyabang1110 发表于 2016-9-25 11:47
方法重写了   比较的是名字这个属性是否一样

,恩恩,知道比较的是名字属性,但是名字这个属性是String 类型的,比较属性时比较的还是这个属性的地址?
作者: 飞舞的指尖    时间: 2016-9-25 16:54
Jarc 发表于 2016-9-25 16:46
在String类下的equals方法重写了object类的方法,比较内容

对 ,重写了Object类的方法,但是所谓的比较内容是指比较的哪方面?
例如  name属性 "小明","翠花",这两个属性用equals比较时,比较的是  小明   翠花  这两个关键字,还是存放 小明与翠花 这两个属性的地址值?
作者: langyabang1110    时间: 2016-9-25 18:16
飞舞的指尖 发表于 2016-9-25 16:49
,恩恩,知道比较的是名字属性,但是名字这个属性是String 类型的,比较属性时比较的还是这个属性的地址? ...

equals比较的是引用数据类型   使用这个方法的时候 所有对象都会继承object类中的方法  如果没有对equals方法重写 那么比较的是地址值  但实际上我们比较是否相同  根据的是对象中的属性值进行比较  所以需要我们重写方法 来定义自己对象的比较方式  代码中的比较就是对值的比较




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2