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

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録