返回该对象的哈希码值,根据哈希码值判断两个对象是否相等,如果相等的话,再去判断equals() .如果不相等就不用判断equals().
如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
public int hashCode()
{
return name.hashCode()+sum*78;
}
如果返回的是name.hashCode()+sum 虽然两个对象的hashCode不同 但是这个两个对象的的name.hashCode()加上sum 的和有可能相等,所以为了避免这种情况sum*78(任意的数); |