###前提・実現したいこと
java初心者です。
Javaで簡単なパワプロくんみたいなゲームを作っています。
MainクラスでHeroクラスをインスタンス化しました(Hero h = new Hero();)。ManagrクラスでもHeroクラスのaddHP()メソッドを使いたいのですが、h.addHPでもHero.addHPでも上手くいきません。
ManagerクラスでHeroをインスタンス化せずに、HeroクラスのaddHPメソッドを使いたいんですが、どうすればいいんでしょうか。助けて欲しいです。
[追記]
ManagerクラスもMainクラスでインスタンス化するキャラクターの一人です。HeroのHPを回復するメソッドを持っています。
###発生している問題・エラーメッセージ
hを解決できません。static参照することはできません。
###該当のソースコード
java
1public class Hero { 2 3 public Hero(String name){ 4 this.name = name; 5 this.HP = 100; 6 } 7 8 public void addHP(int num){ 9 this.HP += num; 10 } 11} 12 13————————————————————— 14public class Manager { 15 16 public Manager(String name) { 17 this.name = name; 18 } 19 20 public void recovery(){ 21 h.addHP(40); 22 } 23} 24————————————————————— 25 26public class Main { 27 public Main(){ 28 Hero h = new Hero("Test1"); 29 Manager m = new Manager("Test2"); 30 m.recovery(); 31 } 32}
###試したこと
(Managerクラス内の)h.addHP(40)→Hero.addHP(40)
にしてみましたが、「型Heroの非staticメソッドaddHP(int)をstatic参照することはできません」とエラー。
一応、HeroクラスのHPとaddHPメソッドをstaticにしてみると、Hero.addHP(40);でエラーは消えましたが、これでは、Mainクラスでインスタンス化した(Hero)hの体力が回復するわけではないですよね?
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/23 07:10
2018/01/23 07:34
2018/01/23 07:45