@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;
}
这TM到底什么鬼?用来干什么?other这个对象怎么凭空来的?this指的是哪个对象?
看下一节 多态 有答案。
默认的epuals方法判断的是两个对象所指向的空间地址是否是同一个地址。这段代码就用来判断两个对象(分别指向不同的空间地址时)他们每个具体的属性的值是否相同。this==obj这句的意思就是比较当前操作的对象与obj这个对象的空间地址是否相同(this就是代表操作当前的对象obj就是比较的那个对象。).这里的other是他自己强制将obj对象转换为Dog类的对象然后将这个对象赋给other,这里的other就起到了引用的作用。这是默认的。如果你自己写的话也可以随意的用一个词来代替other一样的。就跟你的名字一样是个代号。