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

Java入门第三季

难度入门
时长 5小时 0分
学习人数
综合评分9.50
1125人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.4 逻辑清晰
新手小白 写一下我的理解 如果有错误大家指正下
对于类对象 equals方法比较的是 栈的地址 ,所以达不到比较contains方法想要达到的比较内容的目的,所以必须改写equals方法。
对于类对象 equals 与 == 如果不该写几乎是等价的。
改写程序中 首先判断两者栈地址是否相同,如果相同既为同一对象 肯定相同。
其次如输入对象为 空 ,则返回-1;由于定义比较对象时 由于构造方法的存在, 不可能为空,所以不存在空跟空的比较。
再判断二者类型是否相同 , 这样只剩下地址不同 类型相同 的对象进行比较。
再后面的判断则是结合了本实例的要求 对Course中的 name 属性进行比较。当this 里面name 为空时 如输入对象name属性也为空,则二者相同。 否则 this 的name不为空 ,由于String类中 equals的重写机制,真正的只比较内容 ,所以此处用this.name.equals(cr.name),如果相同则输出 true
对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。
java中的数据类型,可分为两类:
1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
他们之间的比较,应用双等号(==),比较的是他们的值。
2.复合数据类型(类)
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较

最新回答 / 进击的百事可乐
用StringBuilder报错  可能是你编译器版本问题,检查下你Ecplise调用jdk的版本是不是1.5或者1.6。 还有StringBuffer和StingBuilder的区别在用前者是线程安全,一般使用StringBuilder 效率高些,在这里两者都可以用
答案代码输出会多一个,

最新回答 / qq电子时代
你理解了吗  可以给我说说吗   我不理解对于List与Set而言,都是遍历一边,分别与courses2.name进行equals   List不需要重写  但是Set就需要重写?这是我理解的hashcode与equals   (hash比较一个域,equals比较域中一个元素.equals为true,hash一定为true;equals为false,hash不一定为false)  在此 contains先比较hash,后比较equals( hash为true,equals不一定为true;hash为fa...
for(int i=str.length();i>0;i=i-3){
str.insert(i,',');
}
多看几遍,代码跟着自己敲一遍,慢慢就懂了。希望明年四月能找到合适的工作!!come on!!!
突然发现C++的异常抛出比Java的异常抛出简便了N倍
substring是从1开始的,而且是默认的左闭右开的取值范围
为什么很多代码都写着不等于-1,而不应该是大于0么?大于0才表示一定找到了而且不是在首位,还有后面的等于写成".java".equals()会不会更好?
好像按照题目输出是不给通过的,要正确才能通过,估计编这道题的时候就是格式正确的

已采纳回答 / qq_倔強人生_0
 int num;    String name;这个地方最好用private进行封装调用时是用get的方法;其他我觉得挺好的
棒棒的,很清晰。期待更高级别的课程~
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消