回答編集履歴

2

追記

2018/01/23 07:36

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -20,6 +20,20 @@
20
20
 
21
21
 
22
22
 
23
+ **追記:**
24
+
25
+ マネージャが文字通り部活動のマネージャーを指しているのですね。
26
+
27
+ それだったら後者の方が素直な設計な気がします。
28
+
29
+
30
+
31
+ あるいは、回復量を返すメソッドをManagerに用意するのもありです。
32
+
33
+ この場合、Hero#addHPをプライベートメソッドに出来るというメリットがあります。
34
+
35
+
36
+
23
37
  ---
24
38
 
25
39
  > 一応、HeroクラスのHPとaddHPメソッドをstaticにしてみると、Hero.addHP(40);でエラーは消えましたが、これでは、Mainクラスでインスタンス化した(Hero)hの体力が回復するわけではないですよね?

1

追記

2018/01/23 07:36

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -17,3 +17,21 @@
17
17
  どちらが良いかは設計に依ります。
18
18
 
19
19
  Managerが何のマネージャかわからないので、私には選べません。
20
+
21
+
22
+
23
+ ---
24
+
25
+ > 一応、HeroクラスのHPとaddHPメソッドをstaticにしてみると、Hero.addHP(40);でエラーは消えましたが、これでは、Mainクラスでインスタンス化した(Hero)hの体力が回復するわけではないですよね?
26
+
27
+
28
+
29
+ 回復しますよ。
30
+
31
+ ただ、ヒーローが複数いた場合、彼らのHPが全て共有されてしまいます。
32
+
33
+
34
+
35
+ staticをむやみに使うことはオブジェクト指向に反します。
36
+
37
+ よく分からないで使っているのなら、やめといた方がいいです。