请看如下代码:
- public class Demo_Object {
-
- public boolean equals(Object obj) {
- return (this == obj);
- }
-
- @Override
- public boolean equals(Object obj) {//Object obj = new Worker();
- Worker w = (Worker)obj;
- return this.name.equals(w.name) && this.age == w.age;
- }
- */
- public static void main(String[] args) {
- Worker w1 = new Worker("张三", 23);
- Worker w2 = new Worker("张三", 23);
- boolean b = w1.equals(w2);
- System.out.println(b);
复制代码 以下对比总结: /* * == 和equals 方法的区别 * 1,== 号是一个符号 * equals是一个方法 * 2,==号既可以比较基本数据类型,也可以比较引用数据类型 * equals方法只能比较引用数据类型 * 3,如果当前类没有重写Object这个类的equals方法,他的底层就是用==号实现的,比较的两个对象的地址值 * 这个结果不是我们想要的,所以我们定义类,一般都会重写equals方法,比较的是对象中的属性 * ==比较基本数据类型,比较的是值 * 比较引用数据类型,比较的是地址 */ } }
|