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

equalsw 重写后无法判断属性值

equalsw 重写后无法判断属性值

慕慕1270022 2016-07-13 01:48:54
package Equals的用法;public class Phone1 { public int cpu = 2; public void say() { System.out.println("我是手机"); }}package Equals的用法;public class Phone2 { public int cpu = 2; public void say() { System.out.println("我是手机"); } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Phone2 other = (Phone2) obj; if (cpu != other.cpu) return false; return true; }}package Equals的用法;public class User { public static void main(String[] args) { Phone1 aPhone1 = new Phone1(); Phone2 aPhone2 = new Phone2(); if (aPhone1.equals(aPhone2)) { System.out.println("比较的是对象的地址: 一样"); } else { System.out.println("比较的是对象的地址: 不一样"); } if (aPhone2.equals(aPhone1)) { System.out.println("比较的是对象的属性: 一样"); } else { System.out.println("比较的是对象的属性: 不一样"); } }}
查看完整描述

1 回答

?
Caballarii

TA贡献1123条经验 获得超629个赞

aphone1和aphone2的类型都不一样,一个是Phone1,一个是Phone2,上来比较就会return false

比较的应该是同一类型的两个对象

Phone2 aPhone1 = new Phone2();

Phone2 aPhone2 = new Phone2();

这样的aPhone1和aPhone2比较才有意义

查看完整回答
1 反对 回复 2016-07-13
  • 1 回答
  • 0 关注
  • 1442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信