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

重写equals()方法及相关说明:

@Override
	public boolean equals(Object obj) {
		// 判断两个引用的值是否相同
		// (引用的值判断的是两个引用的地址是否相同,如果两个引用的地址相同,即这两个引用指向了同一个对象)
		if (this == obj)
			return true;
		//如果另外一个对象的值为空,则不比较
		if (obj == null)
			return false;
		//比较类对象(注意:类的对象和类对象是不同的概念)
		//类对象关注的是类的代码信息,如类的属性、它是什么类型的、变量名是什么、
		//它有哪些方法、方法名是什么、方法里面的代码是什么
		//类的对象关注的是类的属性值的信息,即数据信息
		if (getClass() != obj.getClass())
			return false;
		//将传入的对象强制转换为当前对象
		Dog other = (Dog) obj;
		//判断两个对象的属性值是否相同
		if (age != other.age)
			return false;
		return true;
	}




正在回答

2 回答

我的理解是引用可以是方法也可以是属性值,所以引用对象的值其实也就包含属性值

0 回复 有任何疑惑可以回复我~

前面已经判断两个引用的值,后面再判断两个对象的属性值是不是有点多余啊,难道引用值!=属性值??

0 回复 有任何疑惑可以回复我~
#1

qq__878

判断两个引用的值,就需要先判断引用地址是否相等,if (this == obj) return true;判断的是地址不是值。
2015-07-30 回复 有任何疑惑可以回复我~

举报

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