rewrote jsava.lang.Object#hashCode