这个题目如何回答

Person里有三个属性,firstname,lastname,age,如何设计让firstname和lastname相等了则这个对象相等了.
这个是一道面试题目,我的回答是:
[code="java"]
class Person{
String firstname;
String lastname;
int age;

     @override
    public boolean equals(Object obj){
       Person p=(Person)obj;
       //以下应该有一些空值的判断,大家别挑剔,
       if(p.getFirstname.equals(this.name)&&p.getLastname(this.lastname)){
             return true;
         }
       else return false;
      }
    //get set方法省略........

}
[/code]

这样回答是否对?因为笔试我没有看到......

在写上equals方法的同时还需写上
@Override
public int hashCode() {
return getFirstName().hashCode()+getLastName().hashCode();

}
才能真正实现两个Person真正实现firstname和lastname相等了则这个对象相等了

[code="java"]if(obj instanceof Person) {
Person p = (Person)obj;
}[/code]

不然调用person.equals(other);传入一个其它对象就会报类型转化异常了

重写equals(Object)须重写hashCode()。