参考文档:Java核心技术卷I
一,equals方法的作用:检测一个对象是否等于另一个对象
1)比较两个基本类型的数据的值是否相等。这里是直接比较的值。【错误:基本数据类型没有equals方法】
mark:Java中的基本类型:
int,4个字节存储,4byte,取值范围:-2^31-1 ~ 2^31-1
short,2个字节,2byte,取值范围:-2^15-1 ~ 2^15-1
long,8个字节,8byte,取值范围:-2^63-1~2^63-1
byte:1个字节,1byte,取值范围:-2^7-1~2^7-1
double:4个字节,4byte,
float:4个字节,4byte
char:2个字节,2byte,
boolean:1bit
2)【未重写equals方法的情况下】比较两个对象的地址是否相等,及两个对象是否具有相同的引用。
3)如何重写equals方法。
- 查看对象是否指向统一地址。 if(object1 == object2) return ture;
- 查看传进来的对象是否为空。if(object2==null) return false;
- 查看是否是同一个类的对象。if(getclass()!=object2.getClasss()) return false;
- 比较属性是否相等。 if(name.equals(object2.getname()) return true;
给个示例:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
其中:age为int类型,name为String类型
下一篇文章,讲解==和equals的区别,另外,讲讲String中,=号赋值和new String("")的区别。