为什么equals方法重写中要在调用equals而不用==
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
可以再认真看一下字符串讲解的章节,对于字符串"=="和"equals"的作用不同