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

最后那个equals的那个比较程序什么意思啊?好复杂

@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指的是哪个对象?

正在回答

2 回答

看下一节 多态 有答案。

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

默认的epuals方法判断的是两个对象所指向的空间地址是否是同一个地址。这段代码就用来判断两个对象(分别指向不同的空间地址时)他们每个具体的属性的值是否相同。this==obj这句的意思就是比较当前操作的对象与obj这个对象的空间地址是否相同(this就是代表操作当前的对象obj就是比较的那个对象。).这里的other是他自己强制将obj对象转换为Dog类的对象然后将这个对象赋给other,这里的other就起到了引用的作用。这是默认的。如果你自己写的话也可以随意的用一个词来代替other一样的。就跟你的名字一样是个代号。

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

举报

0/150
提交
取消

最后那个equals的那个比较程序什么意思啊?好复杂

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