class SortOf

String name;
int bal;
String code;
short  rate;
public int hashCode()
{
return(code.length()*bal);
}
public equals(Object obj)
{
//insert here
}
}
A  return((SortOf)o).bal==this.bal;
B  return((SortOf)o.code.length()==this.code.length();
C  return((SortOf)o.code.length()*((SortOf)o.bal==this.code.length()*this.bal;
D  return((SortOf)o.code.length()*((SortOf)o.bal*((SortOf)o.rate==this.code.length()*this.bal*this.rate;
自己选的是C   但是答案显示错误  觉得比较纳闷  既然题目hachCode()方法用的是code和bal变量,根据约定equals()也应该用这两个变量啊   求助一下大家了  谢谢!

解决方案 »

  1.   

    如果不是考试题,我会告诉你,根据什么条件判它相等取决于你自己的需要。但这题里,恕我英语不好,这个类代表什么含义,rate、bal、code代表什么我们都不知道,这就要看出题人的意思了。也许这个类表示的事物,在这三个变量都相等的时候就算是同一个对象吧。
      

  2.   

    C啦,用穿进去的OBJECT的STRING 长度乘以这个OBJECT的BAL值比较是否相等
      

  3.   

    我也是有些没看懂.我也考过SCJP,确实有些非议所思的题!这个equal里怎样判断是你自己觉得的啊.但是必须要包括hashCode方法里用到的变量.A和B肯定是不对.D肯定是对的,但是C我感觉也是对的.我觉得应该是CD.如果说它说了是单选的化就是D.D一定是对的
      

  4.   

    根据equals如果返回true  hashCode()一定相等的 貌似只有C符合吧  LS A是怎么得出来的?