スッキリわかるJava入門という書籍の練習問題を解いていて、
Wandクラス、Wizardクラスについては、練習問題の回答をそのまま書き写したのですが、下記のように、値がnullであると、2個エラーがでてしまいます。
なぜこのようなエラーが起きてしまうのでしょうか?
大変恐れ入りますが、ご教授いただけると助かります。。。。。
Errorcode
1Exception in thread "main" java.lang.NullPointerException 2 at Wizard.heal(Wizard.java from InputFileObject:41) 3 at Main.main(Main.java from InputFileObject:13)
1個目のエラー
int recovPoint = (int) (basePoint * this.getWand().getPower());
2個目のエラー
wizard.heal(h);
Java
1//Mainクラス 2public class Main { 3 public static void main(String[] args) { 4 Hero h = new Hero(); 5 System.out.println(h.getHp()); 6 Wizard wizard = new Wizard(); 7 wizard.heal(h); 8 } 9}
Java
1//Heroクラス 2public class Hero { 3 private String name; 4 private int hp = 10; 5 6 public String getName(){ 7 return this.name; 8 } 9 10 public void setName(String name){ 11 this.name = name; 12 } 13 14 public int getHp(){ 15 return this.hp; 16 } 17 18 public void setHp(int hp){ 19 this.hp = hp; 20 } 21}
Java
1//Wizardクラス 2public class Wizard { 3 private int hp; 4 private int mp; 5 private String name; 6 private Wand wand ; 7 8 public String getName(){ 9 return this.name; 10 } 11 12 public void setName(String name){ 13 this.name = name; 14 } 15 16 public int getHp(){ 17 return this.hp; 18 } 19 20 public void setHp(int hp){ 21 this.hp = hp; 22 } 23 24 public int getMp(){ 25 return this.hp; 26 } 27 28 public void setMp(int mp){ 29 this.mp = mp; 30 } 31 32 public Wand getWand(){ 33 return this.wand; 34 } 35 36 public void setWand(Wand wand){ 37 this.wand = wand; 38 } 39 40 public void heal(Hero h){ 41 int basePoint = 10; 42 int recovPoint = (int) (basePoint * this.getWand().getPower()); 43 h.setHp(h.getHp() + recovPoint); 44 System.out.println 45 (h.getName() + "のHPを" + recovPoint + "回復した!"); 46 } 47}
Java
1//Wandクラス 2public class Wand { 3 private String name; 4 private double power; 5 6 public String getName(){ 7 return this.name; 8 } 9 10 public void setName(String name){ 11 this.name = name; 12 } 13 14 public double getPower(){ 15 return this.power; 16 } 17 18 public void setPower(double power){ 19 this.power = power; 20 } 21}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/05 12:45