本帖最后由 caobin 于 2014-12-2 14:44 编辑
如例子,复写的时候如果不在name后面调用hashCode方法就会报String 无法转换为int?为什么是String无法转换为int呢?突然明白了,原来我定义这个方法的返回值是int,但是调用的方法hashCode是怎么将String转成Int的?
class Person
{
private String name;
private int age;
public Person(String name,int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public int hashCode()
{
return name.hashCode()+age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
}
|