回答編集履歴

1

例のコードについて解説

2016/10/12 15:47

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -15,3 +15,7 @@
15
15
 
16
16
 
17
17
  equalsメソッドは、**自分と引数として渡されたオブジェクトが「同じ」であるかどうかを判定する**ためのメソッドです。**何をもって「同じ」とするかはクラスの設計者が決める必要があります。**何も設計しなければ`==`での比較と全く同じ効果になります。設計に応じて、equalsメソッドをオーバーライドすることで、希望通りの比較ができるようになるのです。
18
+
19
+
20
+
21
+ 例として出されたコードでは、2つのHeroオブジェクトを作り、名前をともに"ミナト"に設定し、HPを100に設定しました。しかしあくまで**これらのHeroは別個のオブジェクト**です。別々のHeroに、同じ名前、同じHPを設定しただけで、別のものなのです。なので`==`での比較もfalseになるし、「同じ」の定義を`==`と一緒にしているequalsメソッドでもfalseになるのです。