3-8:hashcode equals
1:add方法会隐式调用hashcode,equals,怎么个调用法:huahua01.hashCode();?this.equals(huahua1);?
2:hashCode//只进行分类,不管是自己定义的还是系统定义的类?它不判断?还是它只判断对象是否引用同一块内存空间?相同就不会进行equals,不同就要equals,系统定义的类不用重写equals,自己写的要重写,
3:this==obj, obj是子类向上转型后的吧,==进行地址判断是否一样,this是set里面的对象经过hashcode分类后,在一个类里面的对象?
4.
正在回答
同学你好,是老师没有理解同学的意思。给您的学习带来不便,深感抱歉!equals(Object obj)是进行向上转型,在equals()方法中调用obj时需要进行向下转型(如:Cat cat=(Cat)obj)。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学你好,
1、添加的时候会进行的底层的调用,先调用hashCode方法比较,如果hashCode相同 ,再调用equals方法比较 ,如果hashCode不同,说明不是一个对象,可以直接添加
2、同学的理解有些偏差,hashCode也是用来判断的,如果两个对象的hashCode是相同的,则进行equals详细的判断,但是,如果比较两个对象的hashCode不相等,说明这两个对象一定不同。就没有必要进行equals判断了。
如果老师理解错了同学的意思,还请同学在详细描述一下
3、obj并不是子类向上转型后的,==是判断地址是否一样,同学理解有误this代表当前对象,是表示调用equals方法的这个当前对象,而不是传进去比较的对象
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星