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

equals的问题

共1个回答
已采纳 qq_原点_29 回答

public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (name == null) { ...

来自 Java

equals

共1个回答

为什么要equals

共2个回答
已采纳 如果成功会怎样 回答

对的 没有重写之前是比较的新建对象所在的内存空间 而重写之后则是标胶两个类对象是否相同

为什么要equals

共2个回答
已采纳 予远方 回答

要看比较的目的了,是比较对象(引用)还是比较实际值了。默认equals在比较俩个对象的时候,是看他们是否指向同一个地址的。但有时候我们希望比较俩个对象的某些属性值是否相同,如果相同的话就认为他们的equals为true。比如:Student s1 = new Student(1,”name1”); Student s2 = new Student(1,”name1”);如果用默认的equals比较...

为什么非要equals()

共2个回答
已采纳 枫君 回答

那你有没有想过如果两个对象有成百上千个属性呢?直接调用需要将每个属性都进行比较,哪怕只有一个属性不等就是不同的,这样工作量无疑非常巨大,而重写equals方法,计算机自动生成代码就简单多了

为什么在equals时会有这么多return?

共2个回答
已采纳 SevenQi 回答

你先了解一下作用域范围再说吧,那时候你就懂了

为什么在Course类中equals,而不是在别的地方呢?

共2个回答
已采纳 伊兮尘昔 回答

你判断的是什么?你是不是判断是Course类中的某某值或者属性?这样写比较简单

为什么从equals后判断结果还是false !?

共1个回答
已采纳 PY00001 回答

if(this.equals(course.name)){    return true;}这句有问题;应该是if(this.name.equals(course.name)){    return true;}名字的比较,而不是拿一个当前的对象(this)与传入对象的name属性(course.name)比较

请问下equals时 将obj强转为Course类型是为什么

共1个回答
已采纳 坚持每天都看 回答

因为开始这个这里是比较课程啊,你传进来的obj开始就是一个Course对象,只不过传进来的时候是向上转型自动转程Object类,而在equals方法中需要比较Course里面的属性内容,所以就要把传进来的Obj再强制转型为Course。还有就是如果传进来的不是Course对象,是不可能走到这一步的,因为前面有instanceof来比较是不是Course对象。

6-1节关于equals的问题

共1个回答
已采纳 Master_Yi 回答

你不是在这个当前Course.java下写的吗? private的属性可以在类中使用,建议看一下java访问修饰符这一章节~

equals

共2个回答
来自 Java

关于equals()

共1个回答
已采纳 回答

没有多余,计算机不是人,它不具备逻辑推理能力,比如,如果太阳在头顶上,我们就可以知道现在的时辰是正午,但你如果告诉计算机太阳在头顶,它并不能由此判断出时辰,此处也是同样的道理。

equals的时候,这里的this.name.equals(course.name)调用了一次

共4个回答
已采纳 ziom 回答

不会。你重写的只是当前类的equals(),this.name应该是个字符串吧,而字符串的equals你是没法重写的。呵呵,说起来当初我学java的时候也问过这个问题,如今虽然还没修炼成大神,但一直在走向大神的路上,采纳我吧:D, 哥看好你。

equals的问题

共4个回答
已采纳 天启之魂 回答

if (getClass() != obj.getClass())            return false;        Dog other = (Dog) obj;这句话,能执行到Dog other = (Dog) obj;就说明this.getClass()==obj.getClass,说明obj也是Dog类对象,只不过是用Object类的引用指向了这个对象,所以下面要把obj的类型...

来自 Java

java怎么equals

共1个回答
已采纳 回答

// 注意:因为是重写Object中的equals method,所以参数类型必须是Object @Override public boolean equals(Object other) {     // 如果该类存在基类,则先尝试在基类中比较一下,如果在基类中就不相同,那肯定不相同     if (!super.equals(other)) return false;          // ...

打扑克牌中!

共4个回答

为什么会相同

共2个回答
已采纳 kuangge 回答

重写的equals代码比的是量个对象属性的值,是修改了的

包含相关内容

共1个回答

关于equals()的疑问

共4个回答
已采纳 mushji 回答

省略了,不省略的代码是这样的

来自 Java

关于java中的equals

共1个回答

关于equals的疑问

共2个回答
已采纳 AlexanderW 回答

此时此刻,你的obj是类型是Object(因为你equals的方法中传递过来的是一个Object),你使用了instanceof只是用来判断你的obj是不是Course的一个实例,但obj本身自己还是一个Object类型。如果你不进行一次强转,那么obj就无法访问到Course的成员变量和方法,那接下来的course.name这种代码编译器都会自动报错!所以一定要进行一次强转,obj才会真正变成C...

首页上一页123下一页尾页
直播
查看课程详情
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号