equals递归调用问题

来源:6-1 学生选课---判断 List 中课程是否存在

我喜欢Love

2015-04-28 16:31

为什么equals方法重写中要在调用equals而不用==

写回答 关注

2回答

  • yong_a
    2015-04-30 10:27:16
    已采纳

    Object类中的方法,适合所有子类。

    1.toString()方法

    在Object类里面定义了toString()方法的时候返回的对象的哈希code码(对象地址字符串)

    可以通过重写toString()方法表示出对象的属性(source菜单栏下的Generate toString())

    2.equals()方法(source菜单栏下的Generate hashCode()and equals())

    比较的是对象的引用是否指向同一块内存地址

    重写equals()方法以后可以比较两个不同内存地址的对象是否相等。

    ==:

    * 如果操作的是基本数据类型的数据,比较的数值是否相等

    * 如果操作的是引用数据类型的数据,比较的地址值是否相等

    equals:

    * 只能够比较引用数据类型的数据, 默认比较的是地址值是否相等

    * 默认的比较方式通常来说是没有意义的

    * 我们需要重写此方法,让它来比较两个对象中的内容是否一致 


    String对象继承自Object,并且对equals()方法进行了重写

    String s1 = new String("Hello");

    String s2 = new String("Hello");


    System.out.println(s1 == s2);

    System.out.println(s1.equals(s2));


    以上代码段的打印结果是:


    false

    true


    我喜欢Lov...

    非常感谢!!!

    2015-09-20 18:28:42

    共 2 条回复 >

  • 没有马甲线的安琪拉
    2015-04-28 18:10:05

    可以再认真看一下字符串讲解的章节,对于字符串"=="和"equals"的作用不同

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题