问答详情
源自:9-9 Java 中的 Object 类 Ⅱ

运行不出正确答案

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("两个对象不同");

 }

  }

}

结果还是不同

提问者:用心去专注 2018-01-21 23:09

个回答

  • 痞子姚
    2018-01-21 23:59:06
    已采纳

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

    dog.age=60,

    dog2.age=60.

    这样结果才是相同.

  • qq_颜子明_0
    2018-01-25 11:05:59

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

  • xcopfans
    2018-01-22 19:01:54

    当然不同啦

    if (obj == null)

        return false;

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

        return false;

    Dog other = (Dog) obj;

        if (age != other.age)

    return false;

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

  • zhima123
    2018-01-22 09:55:06

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