014-008-012
equals()とhashCode()のオーバーライド
中級
問題説明
equals()とhashCode()のオーバーライド
この問題では: 座標点を表すPointクラスでObjectクラスのequals()とhashCode()メソッドをオーバーライドし、座標値による等価比較を実現するプログラムを作成します。
学習目標: equals()とhashCode()の正しいオーバーライド方法と、両者の関連性を理解する
概要
デフォルトのequals()はオブジェクトの参照(アドレス)を比較します。座標点の場合、x座標とy座標が同じなら等しいと判定したいため、equals()をオーバーライドします。equals()をオーバーライドする場合はhashCode()も必ずオーバーライドする必要があります。
仕様
Pointクラス:x(int)、y(int)フィールド、コンストラクタ、ゲッターequals(Object obj): x座標とy座標が同じならtrueを返すhashCode(): x座標とy座標を元にハッシュ値を計算- 2つのPointオブジェクトを比較して結果を出力
出力形式
Point(3, 5)
Point(3, 5)
Equals: true
Hash match: true
