为了账号安全,请及时绑定邮箱和手机立即绑定

运行不出正确答案

DOG类中:

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Dog other = (Dog) obj;

if (age != other.age)

return false;

return true;

}


调用的类:

package com.exe02;


public class Inital {

  public static void main(String[] args){

 Dog dog=new Dog();

 dog.age=60;

 Dog dog2=new Dog();

 dog2.age=70;

 if(dog.equals(dog2)){

 System.out.println("两个对象相同");

 }

 else{

 System.out.println("两个对象不同");

 }

  }

}

结果还是不同

正在回答

4 回答

两个对象属性不同,当然输出结果"两个对象不通"啊.

dog.age=60,

dog2.age=60.

这样结果才是相同.

1 回复 有任何疑惑可以回复我~
#1

用心去专注 提问者

谢谢,明白了
2018-01-22 回复 有任何疑惑可以回复我~

为什么我的两个对象的属性值不同,运行结果还是相同。。。

0 回复 有任何疑惑可以回复我~

当然不同啦

if (obj == null)

    return false;

if (getClass() != obj.getClass())

    return false;

Dog other = (Dog) obj;

    if (age != other.age)

return false;

你重写的方法有这三种情况是返回 false ,第二种和第三种都满足了

0 回复 有任何疑惑可以回复我~
#1

用心去专注 提问者

谢谢,明白了
2018-01-22 回复 有任何疑惑可以回复我~
#2

xcopfans 回复 用心去专注 提问者

啊..等一下,我说错了,第二种没有满足,诶嘿嘿
2018-01-22 回复 有任何疑惑可以回复我~

结合上面那位童鞋的答案,两个对象属性相同,但,属性值不同,即age的值不想等

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

运行不出正确答案

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信