equals();方法比较的是两个对象的内容是否相同。为什么在Object类里面比较两个引用对象时,比较的却是对象的引用是否指向同一块地址?必须要重写equals();方法

来源:2-3 Java 中 String 类的常用方法 Ⅰ

百泉

2016-05-15 18:43

                Dog dog=new Dog();
		Dog dog2=new Dog();
		if(dog.equals(dog2)){
			System.out.println("两个对象是相同的");
		}else{
			System.out.println("两个对象是不同的");
		}


写回答 关注

2回答

  • potatofootball
    2016-05-15 20:08:28
    已采纳

    如果没有重写equals方法比较的是对象的地址,对于Object来说对象有什么属性可以比较啊?就是最底层的内存地址嘛,重写equals挺简单的,使用eclipse的sourse的自动创建equals方法按钮,再选择需要什么属性即可

    百泉

    非常感谢!

    2016-05-15 20:17:55

    共 1 条回复 >

  • 慕移动5892853
    2016-05-15 20:19:06

    ==与equals()区别

    ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象

    equals(): 比较存储在两个字符串对象中的内容是否一致

    我觉得啊:两个字符可能相同可能不同,是绝对的!

    两条狗肯定不是相同的哇!初学仅供参考!

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题