JAVAのフィールドへのアクセスに関する質問です
同一パッケージ内に3つのクラスを作成しています
Heroクラスをカプセル化する為に、フィールドにprivateをつけてアクセス制限したのですが、
Wizardクラス内での void heal(Hero h)メソッド内で
「h.hp += 10;」 という部分がエラーになってしまいました。
この場合の解決方法はどうすればよいのでしょうか
「h.getHp() += 10;」とか考えたのですが
うまくいかなくて困っています。
よろしくおねがいします
//Heroを定義するクラス
package Hero;
public class Hero {
//フィールド
private String name;
private int hp;
//コンストラクタ Hero(String name){ this.hp = 100; this.name = name; } //ゲッター、セッター public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getHp(){ return this.hp; } public void setHp(int hp){ this.hp = hp; }
//Wizardを定義するクラス
package Hero;
public class Wizard {
String name;
int hp;
//HeroのHPを回復するメソッド void heal(Hero h){ h.hp += 10; **//フィールドHero.hpは不可視です
** System.out.println(h.getName() + "のHPを10回復した!");
}
}
//メインメソッド
package Hero;
public class Game {
public static void main(String[] args){
Hero h1 = new Hero("ミナト"); Wizard w = new Wizard(); w.heal(h1); }
}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。