ハッシュは任意の小さな数字にプリミティブな
全ての数値を掛けていくのがシンプルでパフォーマンスのバランスが良い
不変クラスだったりハッシュ値計算対象が多い場合は
最初のhashCode呼び出しのみ計算対象としてキャッシュさせるべき
setterがあるならそこでalready=falseみたいにして
再度ハッシュ値を計算するようフラグを立て直すべし