(1st) pages 290-291 (Section 7.6.3) , also have a look at the material about hash tables in the second edition
(2nd) pages 350-356 (Section 8.3)
public static final int CONSTANT = 33;
public int hashCode()
{
int nameHashCode = name.hashCode();
int numberHashCode = (int) number;
int gpaHashCode = (new Double(gpa)).hashCode();
return (nameHashCode + CONSTANT * (numberHashCode + CONSTANT * gpaHashCode));
}