{"id":52,"date":"2024-10-10T16:16:32","date_gmt":"2024-10-10T07:16:32","guid":{"rendered":"https:\/\/java.satoshis.jp\/?p=52"},"modified":"2024-10-17T15:37:29","modified_gmt":"2024-10-17T06:37:29","slug":"%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%a7rpg%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b","status":"publish","type":"post","link":"https:\/\/java.satoshis.jp\/?p=52","title":{"rendered":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u3067RPG\u3092\u4f5c\u3063\u3066\u307f\u308b"},"content":{"rendered":"<p>\u307e\u305a\u3001VSCode\u3067\u65b0\u3057\u304fJava\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        System.out.println(&quot;Hello world!&quot;);\r\n    }\r\n}\r\n<\/pre>\n<p>RPG\u306b\u306f\u52c7\u8005\u304c\u5fc5\u8981\u306a\u306e\u3067\u3001\u52c7\u8005\u306b\u5bfe\u5fdc\u3059\u308b Brave \u30af\u30e9\u30b9\u3092\u7528\u610f\u3057\u307e\u3059\u3002<br \/>\n\u540d\u524d\u3092\u4ed8\u3051\u3089\u308c\u308b\u3088\u3046\u306b\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Brave {\r\n  private String name;\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n}\r\n<\/pre>\n<p>App\u30af\u30e9\u30b9\u3067\u52c7\u8005\u3092\u4f5c\u3063\u3066\u540d\u524d\u3092\u4ed8\u3051\u3066\u307f\u307e\u3059\u3002<br \/>\n\u3064\u3044\u3067\u306b\u81ea\u5df1\u7d39\u4ecb\u3082\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n    }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Brave {\r\n  private String name;\r\n  private Arms arms;\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u304c\u6b66\u5668\u3092\u6301\u3066\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<br \/>\n\u6b66\u5668\u3068\u3057\u3066 Arms \u30af\u30e9\u30b9\u3092\u7528\u610f\u3057\u307e\u3059\u3002<br \/>\n\u6b66\u5668\u306e\u540d\u524d\u306f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u6c7a\u3081\u3066\u3057\u307e\u3044\u3001\u5f8c\u304b\u3089\u5909\u66f4\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Arms {\r\n  private String name;\r\n\r\n  public Arms(String name) {\r\n    this.name = name;\r\n  }\r\n\r\n  public String getName() {\r\n    return name;\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u306b\u6b66\u5668\u3092\u6301\u305f\u305b\u3066\u3001\u81ea\u5df1\u7d39\u4ecb\u3067\u6b66\u5668\u306e\u6709\u7121\u3092\u51fa\u529b\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Brave {\r\n  private String name;\r\n  private Arms arms;\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668 &quot; + arms.getName() + &quot;\u3092\u88c5\u5099\u3057\u305f\u3002&quot;);\r\n    }\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u306b\u306f\u3044\u308d\u3093\u306a\u30a2\u30a4\u30c6\u30e0\u304c\u5fc5\u8981\u306a\u306e\u3067\u3001\u8907\u6570\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u4fdd\u6301\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668 &quot; + arms.getName() + &quot;\u3092\u88c5\u5099\u3057\u305f\u3002&quot;);\r\n    }\r\n    for (Item item: items) {\r\n      System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0 &quot; + item.getName() + &quot; \u3092\u6301\u3063\u3066\u308b\u305e\u3002&quot;);\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Item\u30af\u30e9\u30b9\u3092\u7528\u610f\u3059\u308b\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Item {\r\n  private String name;\r\n  public Item(String name) {\r\n    this.name = name;\r\n  }\r\n  public String getName() {\r\n    return name;\r\n  }\r\n}\r\n<\/pre>\n<p>App\u30af\u30e9\u30b9\u3067\u52c7\u8005\u306b\u30a2\u30a4\u30c6\u30e0\u3092\u6301\u305f\u305b\u3066\u307f\u308b\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        brave.introduce();\r\n        Item item = new Item(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        item = new Item(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n    }\r\n}\r\n<\/pre>\n<p>\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u5185\u5bb9\u304c\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nPS Z:\\rpg&gt; java -cp bin App\r\n\u3069\u3082\u3001\u30e8\u30b7\u30d2\u30b3\u3067\u3059\uff01\uff01\uff01\r\n\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002\r\n\u3069\u3082\u3001\u30e8\u30b7\u30d2\u30b3\u3067\u3059\uff01\uff01\uff01\r\n\u6b66\u5668 \u3072\u306e\u304d\u306e\u68d2\u3092\u88c5\u5099\u3057\u305f\u3002\r\n\u3069\u3082\u3001\u30e8\u30b7\u30d2\u30b3\u3067\u3059\uff01\uff01\uff01\r\n\u6b66\u5668 \u3072\u306e\u304d\u306e\u68d2\u3092\u88c5\u5099\u3057\u305f\u3002\r\n\u30a2\u30a4\u30c6\u30e0 \u3084\u304f\u305d\u3046 \u3092\u6301\u3063\u3066\u308b\u305e\u3002\r\n\u30a2\u30a4\u30c6\u30e0 \u3084\u304f\u305d\u3046 \u3092\u6301\u3063\u3066\u308b\u305e\u3002\r\n<\/pre>\n<p>RPG\u3067\u4f7f\u308f\u308c\u308b\u30a2\u30a4\u30c6\u30e0\u306b\u306f\u3044\u308d\u3044\u308d\u306a\u7a2e\u985e\u304c\u3042\u308a\u3001\u4f7f\u3063\u305f\u6642\u306e\u52b9\u679c\u3082\u7570\u306a\u308b\u306e\u3067\u3001Item\u30af\u30e9\u30b9\u3067\u3059\u3079\u3066\u3092\u5b9f\u88c5\u3059\u308b\u306e\u306f\u96e3\u3057\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u3088\u3046\u306a\u5834\u5408\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u3067\u306f\u7d99\u627f\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<p>\u300c\u3084\u304f\u305d\u3046\u300d\u306b\u5bfe\u5fdc\u3059\u308b\u30af\u30e9\u30b9\u3068\u3057\u3066Herb\u3092\u4f5c\u6210\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Herb extends Item {\r\n  public Herb(String name) {\r\n    super(name);\r\n    System.out.println(&quot;Herb constructor&quot;);\r\n  }\r\n}\r\n<\/pre>\n<p>super()\u3067\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u547c\u3073\u51fa\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u547c\u3073\u51fa\u3057\u9806\u306a\u3069\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u3001\u6a19\u6e96\u51fa\u529b\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u30b3\u30fc\u30c9\u3082\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Item {\r\n  private String name;\r\n  public Item(String name) {\r\n    this.name = name;\r\n    System.out.println(&quot;Item constructor&quot;);\r\n  }\r\n  public String getName() {\r\n    return name;\r\n  }\r\n}\r\n<\/pre>\n<p>App.java \u306e\u300c\u3084\u304f\u305d\u3046\u300d\u3092new\u3057\u3066\u3044\u308b\u90e8\u5206\u3092Item\u304b\u3089Herb\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        brave.introduce();\r\n        Item item = new Herb(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        item = new Herb(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n    }\r\n}\r\n<\/pre>\n<p>Item\u30af\u30e9\u30b9\u306b\u306f\u3001\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3063\u305f\u6642\u306b\u4f55\u304b\u306e\u52b9\u679c\u304c\u3042\u308b\u306f\u305a\u306a\u306e\u3067\u3001effect()\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Item {\r\n  private String name;\r\n  public Item(String name) {\r\n    this.name = name;\r\n    System.out.println(&quot;Item constructor&quot;);\r\n  }\r\n  public String getName() {\r\n    return name;\r\n  }\r\n\r\n  public void effect() {\r\n    \r\n  }\r\n}\r\n<\/pre>\n<p>Herb\u30af\u30e9\u30b9\u3067\u306fItem\u30af\u30e9\u30b9\u306eeffect()\u30e1\u30bd\u30c3\u30c9\u3092\u518d\u5b9a\u7fa9\u3057\u307e\u3059\u3002<br \/>\n\u3053\u308c\u3092\u30e1\u30bd\u30c3\u30c9\u306e\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3068\u547c\u3073\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Herb extends Item {\r\n  public Herb(String name) {\r\n    super(name);\r\n    System.out.println(&quot;Herb constructor&quot;);\r\n  }\r\n  @Override\r\n  public void effect() {\r\n    System.out.println(&quot;HP\u304c10\u56de\u5fa9\u3057\u305f\u3002&quot;);\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u304c\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3046\u305f\u3081\u306e\u52d5\u4f5c\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<br \/>\nBrave\u30af\u30e9\u30b9\u306buseItem()\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668 &quot; + arms.getName() + &quot;\u3092\u88c5\u5099\u3057\u305f\u3002&quot;);\r\n    }\r\n    for (Item item: items) {\r\n      System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0 &quot; + item.getName() + &quot; \u3092\u6301\u3063\u3066\u308b\u305e\u3002&quot;);\r\n    }\r\n  }\r\n\r\n  public void useItem(Item item) {\r\n    System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n    item.effect();\r\n  }\r\n}\r\n<\/pre>\n<p>App.java\u306b\u52c7\u8005\u304c\u3084\u304f\u305d\u3046\u3092\u4f7f\u3046\u51e6\u7406\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [14]; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        brave.introduce();\r\n        Item item = new Herb(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        item = new Herb(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n    }\r\n}\r\n<\/pre>\n<p>\u300c\u3084\u304f\u305d\u3046\u300d\u3088\u308a\u3082\u52b9\u679c\u304c\u3042\u308b\u300c\u4e0a\u3084\u304f\u305d\u3046\u300d\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class SuperHerb extends Item {\r\n  public SuperHerb(String name) {\r\n    super(name);\r\n  }\r\n\r\n  @Override\r\n  public void effect() {\r\n    System.out.println(&quot;HP\u304c30\u56de\u5fa9\u3057\u305f\u3002&quot;);\r\n  }\r\n}\r\n<\/pre>\n<p>\u300c\u4e0a\u3084\u304f\u305d\u3046\u300d\u3092\u52c7\u8005\u306b\u6301\u305f\u305b\u3066\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: java; highlight: [15,16,17]; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        brave.introduce();\r\n        Item item = new Herb(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        item = new Herb(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n        item = new SuperHerb(&quot;\u4e0a\u3084\u304f\u305d\u3046&quot;);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n    }\r\n}\r\n<\/pre>\n<p>\u300c\u3084\u304f\u305d\u3046\u300d\u3084\u300c\u4e0a\u3084\u304f\u305d\u3046\u300d\u306a\u3069\u306e\u30a2\u30a4\u30c6\u30e0\u306e\u540d\u524d\u306f\u30af\u30e9\u30b9\u3054\u3068\u306b\u6c7a\u307e\u308b\u306e\u3067\u3001App.java\u3067\u540d\u524d\u3092\u5f15\u6570\u3067\u6e21\u3059\u306e\u306f\u3084\u3081\u3066\u3001\u5404\u30a2\u30a4\u30c6\u30e0\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u540d\u524d\u3092\u6307\u5b9a\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Herb extends Item {\r\n  public Herb() {\r\n    super(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n    System.out.println(&quot;Herb constructor&quot;);\r\n  }\r\n  @Override\r\n  public void effect(Brave brave) {\r\n    System.out.println(&quot;HP\u304c10\u56de\u5fa9\u3057\u305f\u3002&quot;);\r\n  }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class SuperHerb extends Item {\r\n  public SuperHerb() {\r\n    super(&quot;\u4e0a\u3084\u304f\u305d\u3046&quot;);\r\n  }\r\n\r\n  @Override\r\n  public void effect(Brave brave) {\r\n    System.out.println(&quot;HP\u304c30\u56de\u5fa9\u3057\u305f\u3002&quot;);\r\n  }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        brave.introduce();\r\n        Item item = new Herb();\r\n        brave.addItem(item);\r\n        item = new Herb();\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n        item = new SuperHerb();\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n    }\r\n}\r\n<\/pre>\n<p>\u6b21\u306f\u3001\u300c\u3084\u304f\u305d\u3046\u300d\u3084\u300c\u4e0a\u3084\u304f\u305d\u3046\u300d\u304c\u52c7\u8005\u306eHP\u3092\u56de\u5fa9\u3059\u308b\u5b9f\u88c5\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>Brave\u30af\u30e9\u30b9\u306bHP\u3092\u56de\u5fa9\u3059\u308b recoverHp()\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [39,40,41]; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668 &quot; + arms.getName() + &quot;\u3092\u88c5\u5099\u3057\u305f\u3002&quot;);\r\n    }\r\n    for (Item item: items) {\r\n      System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0 &quot; + item.getName() + &quot; \u3092\u6301\u3063\u3066\u308b\u305e\u3002&quot;);\r\n    }\r\n  }\r\n\r\n  public void useItem(Item item) {\r\n    System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n    item.effect(this);\r\n  }\r\n\r\n  public void recoverHp(int hp) {\r\n    this.hp += hp;\r\n  }\r\n}\r\n<\/pre>\n<p>Item\u306eeffect()\u30e1\u30bd\u30c3\u30c9\u306b\u306f\u3001\u52b9\u679c\u306e\u5bfe\u8c61\u3068\u306a\u308b\u52c7\u8005\u3092\u5f15\u6570\u3067\u6e21\u305b\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Item {\r\n  private String name;\r\n  public Item(String name) {\r\n    this.name = name;\r\n    System.out.println(&quot;Item constructor&quot;);\r\n  }\r\n  public String getName() {\r\n    return name;\r\n  }\r\n\r\n  public void effect(Brave brave) {\r\n\r\n  }\r\n}\r\n<\/pre>\n<p>Herb\u3068SuperHerb\u306eeffect()\u30e1\u30bd\u30c3\u30c9\u3092\u4fee\u6b63\u3057\u3066\u3001\u52c7\u8005\u306eHP\u3092\u56de\u5fa9\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Herb extends Item {\r\n  public Herb() {\r\n    super(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n    System.out.println(&quot;Herb constructor&quot;);\r\n  }\r\n  @Override\r\n  public void effect(Brave brave) {\r\n    System.out.println(&quot;HP\u304c10\u56de\u5fa9\u3057\u305f\u3002&quot;);\r\n    brave.recoverHp(10);\r\n  }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class SuperHerb extends Item {\r\n  public SuperHerb() {\r\n    super(&quot;\u4e0a\u3084\u304f\u305d\u3046&quot;);\r\n  }\r\n\r\n  @Override\r\n  public void effect(Brave brave) {\r\n    System.out.println(&quot;HP\u304c30\u56de\u5fa9\u3057\u305f\u3002&quot;);\r\n    brave.recoverHp(30);\r\n  }\r\n}\r\n<\/pre>\n<p>\u6b21\u306f\u3001MP\u3092\u56de\u5fa9\u3055\u305b\u308b\u30a2\u30a4\u30c6\u30e0\u300c\u305b\u3044\u3059\u3044\u300d\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br \/>\n\u30af\u30e9\u30b9\u540d\u306f HolyWater \u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class HolyWater extends Item {\r\n  public HolyWater() {\r\n    super(&quot;\u305b\u3044\u3059\u3044&quot;);\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u306eMP\u3092\u56de\u5fa9\u3059\u308b\u305f\u3081\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [45,46,47]; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private int mp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n    System.out.println(&quot;HP:&quot; + hp + &quot; MP:&quot; + mp);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668 &quot; + arms.getName() + &quot;\u3092\u88c5\u5099\u3057\u305f\u3002&quot;);\r\n    }\r\n    for (Item item: items) {\r\n      System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0 &quot; + item.getName() + &quot; \u3092\u6301\u3063\u3066\u308b\u305e\u3002&quot;);\r\n    }\r\n  }\r\n\r\n  public void useItem(Item item) {\r\n    System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n    item.effect(this);\r\n  }\r\n\r\n  public void recoverHp(int hp) {\r\n    this.hp += hp;\r\n  }\r\n  \r\n  public void recoverMp(int mp) {\r\n    this.mp += mp;\r\n  }\r\n}\r\n<\/pre>\n<p>\u300c\u305b\u3044\u3059\u3044\u300d\u306e\u52b9\u679c\u3068\u3057\u3066\u3001\u52c7\u8005\u306eMP\u3092\u56de\u5fa9\u3059\u308b\u51e6\u7406\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class HolyWater extends Item {\r\n  public HolyWater() {\r\n    super(&quot;\u305b\u3044\u3059\u3044&quot;);\r\n  }\r\n  public void effect(Brave brave) {\r\n    brave.recoverMp(10);\r\n  }\r\n}\r\n<\/pre>\n<p>App.java \u306b\u300c\u305b\u3044\u3059\u3044\u300d\u3092\u8ffd\u52a0\u3057\u3066\u3001\u52c7\u8005\u306b\u300c\u305b\u3044\u3059\u3044\u300d\u3092\u4f7f\u3046\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        brave.introduce();\r\n        Item item = new Herb();\r\n        brave.addItem(item);\r\n        item = new Herb();\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n        item = new SuperHerb();\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n        item = new HolyWater();\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n    }\r\n}\r\n<\/pre>\n<p>\u30a2\u30a4\u30c6\u30e0\u3092\u6301\u3063\u3066\u3044\u306a\u3044\u3068\u4f7f\u3048\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u305d\u3057\u3066\u3001\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3046\u3068\u6d88\u8cbb\u3055\u308c\u3066\u6301\u3061\u7269\u304b\u3089\u306a\u304f\u306a\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [36,37,38,39,40,41,42,43,44]; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private int mp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println(&quot;\u3069\u3082\u3001&quot; + name + &quot;\u3067\u3059\uff01\uff01\uff01&quot;);\r\n    System.out.println(&quot;HP:&quot; + hp + &quot; MP:&quot; + mp);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668\u306f\u307e\u3060\u306a\u3044\u3002&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668 &quot; + arms.getName() + &quot;\u3092\u88c5\u5099\u3057\u305f\u3002&quot;);\r\n    }\r\n    for (Item item: items) {\r\n      System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0 &quot; + item.getName() + &quot; \u3092\u6301\u3063\u3066\u308b\u305e\u3002&quot;);\r\n    }\r\n  }\r\n\r\n  public void useItem(Item item) {\r\n    if (items.contains(item)) {\r\n      System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n      item.effect(this);\r\n      items.remove(item);\r\n    } else {\r\n      System.out.println(item.getName() + &quot;\u3092\u6301\u3063\u3066\u306a\u304b\u3063\u305f\uff01&quot;);\r\n    }\r\n  }\r\n\r\n  public void recoverHp(int hp) {\r\n    this.hp += hp;\r\n  }\r\n  \r\n  public void recoverMp(int mp) {\r\n    this.mp += mp;\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u306e introduce() \u306e\u51fa\u529b\u304c\u8aad\u307f\u306b\u304f\u3044\u306e\u3067\u3001\u5c11\u3057\u6574\u7406\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [23,24,25,26,27,28,29,30,31,32,33,34,35,36]; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private int mp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println();\r\n    System.out.println(&quot;\u540d\u524d:&quot; + name);\r\n    System.out.println(&quot;HP:&quot; + hp + &quot; MP:&quot; + mp);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668: \u306a\u3057&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668:&quot; + arms.getName());\r\n    }\r\n    System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0:&quot;);\r\n    for (Item item: items) {\r\n      System.out.println(item.getName());\r\n    }\r\n  }\r\n\r\n  public void useItem(Item item) {\r\n    if (items.contains(item)) {\r\n      System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n      item.effect(this);\r\n      items.remove(item);\r\n    } else {\r\n      System.out.println(item.getName() + &quot;\u3092\u6301\u3063\u3066\u306a\u304b\u3063\u305f\uff01&quot;);\r\n    }\r\n  }\r\n\r\n  public void recoverHp(int hp) {\r\n    this.hp += hp;\r\n  }\r\n  \r\n  public void recoverMp(int mp) {\r\n    this.mp += mp;\r\n  }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u306b\u30a2\u30a4\u30c6\u30e0\u3092\u6301\u305f\u305b\u308b\u90e8\u5206\u3092App.java\u306e\u6700\u521d\u306e\u307b\u3046\u306b\u307e\u3068\u3081\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        Item item = new Herb();\r\n        brave.addItem(item);\r\n        item = new Herb();\r\n        brave.addItem(item);\r\n        item = new SuperHerb();\r\n        brave.addItem(item);\r\n        item = new HolyWater();\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n    }\r\n}\r\n<\/pre>\n<p>item \u5909\u6570\u306e\u5024\u304c\u6700\u5f8c\u306e\u300c\u305b\u3044\u3059\u3044\u300d\u306e\u307e\u307e\u306a\u306e\u3067\u3001\u4ed6\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3048\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002<br \/>\n\u306a\u306e\u3067\u3001\u4ed6\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u306b\u3001\u52c7\u8005\u306e\u6301\u3061\u7269\u304b\u3089\u30a2\u30a4\u30c6\u30e0\u540d\u3067\u53d6\u308a\u51fa\u305b\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [38,39,40,41,42,43]; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private int mp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println();\r\n    System.out.println(&quot;\u540d\u524d:&quot; + name);\r\n    System.out.println(&quot;HP:&quot; + hp + &quot; MP:&quot; + mp);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668: \u306a\u3057&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668:&quot; + arms.getName());\r\n    }\r\n    System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0:&quot;);\r\n    for (Item item: items) {\r\n      System.out.println(item.getName());\r\n    }\r\n  }\r\n\r\n  public Item getItem(String name) {\r\n    for (Item item : items) {\r\n      if (item.getName().equals(name)) return item;\r\n    }\r\n    return null;\r\n  }\r\n  \r\n  public void useItem(Item item) {\r\n    if (items.contains(item)) {\r\n      System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n      item.effect(this);\r\n      items.remove(item);\r\n    } else {\r\n      System.out.println(item.getName() + &quot;\u3092\u6301\u3063\u3066\u306a\u304b\u3063\u305f\uff01&quot;);\r\n    }\r\n  }\r\n\r\n  public void recoverHp(int hp) {\r\n    this.hp += hp;\r\n  }\r\n  \r\n  public void recoverMp(int mp) {\r\n    this.mp += mp;\r\n  }\r\n}\r\n<\/pre>\n<p>App.java \u3067\u306f\u3001\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3046\u524d\u306b\u3001\u52c7\u8005\u306e\u6301\u3061\u7269\u304b\u3089\u30a2\u30a4\u30c6\u30e0\u540d\u3092\u6307\u5b9a\u3057\u3066\u30a2\u30a4\u30c6\u30e0\u3092\u53d6\u5f97\u3057\u3066\u4f7f\u3046\u3088\u3046\u306b\u3057\u307e\u3059\u3002<br \/>\n\u30b2\u30fc\u30e0\u306e\u753b\u9762\u4e0a\u3067\u6301\u3061\u7269\u30ea\u30b9\u30c8\u304b\u3089\u30a2\u30a4\u30c6\u30e0\u306e\u540d\u524d\u3092\u63a2\u3057\u51fa\u3057\u3066\u3001\u305d\u308c\u3092\u4f7f\u3046\u30a4\u30e1\u30fc\u30b8\u3067\u3059\u306d\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class App {\r\n    public static void main(String&#x5B;] args) throws Exception {\r\n        Brave brave = new Brave();\r\n        brave.setName(&quot;\u30e8\u30b7\u30d2\u30b3&quot;);\r\n        brave.introduce();\r\n        Arms arms = new Arms(&quot;\u3072\u306e\u304d\u306e\u68d2&quot;);\r\n        brave.setArms(arms);\r\n        Item item = new Herb();\r\n        brave.addItem(item);\r\n        item = new Herb();\r\n        brave.addItem(item);\r\n        item = new SuperHerb();\r\n        brave.addItem(item);\r\n        item = new HolyWater();\r\n        brave.addItem(item);\r\n        brave.introduce();\r\n\r\n        item = brave.getItem(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n        item = brave.getItem(&quot;\u4e0a\u3084\u304f\u305d\u3046&quot;);\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n        item = brave.getItem(&quot;\u305b\u3044\u3059\u3044&quot;);\r\n        brave.useItem(item);\r\n        brave.introduce();\r\n    }\r\n}\r\n<\/pre>\n<p>\u52c7\u8005\u306eHP\u3084MP\u3092\u56de\u5fa9\u3059\u308b\u3068\u304d\u306b\u3001HP\u3084MP\u304c\u6700\u5927\u5024\u306b\u306a\u3063\u3066\u3044\u305f\u3089\u30a2\u30a4\u30c6\u30e0\u3092\u4f7f\u3048\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,61,62,63,66,67,68,69]; title: ; notranslate\" title=\"\">\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class Brave {\r\n  private int hp = 10;\r\n  private int mp = 10;\r\n  private String name;\r\n  private Arms arms;\r\n  private List&lt;Item&gt; items = new ArrayList&lt;&gt;();\r\n  public String getName() {\r\n    return name;\r\n  }\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n  public void setArms(Arms arms) {\r\n    this.arms = arms;\r\n  }\r\n  public void addItem(Item item) {\r\n    items.add(item);\r\n  }\r\n\r\n  private int maxHp() {\r\n    return 20;\r\n  }\r\n\r\n  public boolean isMaxHp() {\r\n    return maxHp() == hp;\r\n  }\r\n\r\n  private int maxMp() {\r\n    return 20;\r\n  }\r\n\r\n  public boolean isMaxMp() {\r\n    return maxMp() == mp;\r\n  }\r\n\r\n  public void introduce() {\r\n    System.out.println();\r\n    System.out.println(&quot;\u540d\u524d:&quot; + name);\r\n    System.out.println(&quot;HP:&quot; + hp + &quot; MP:&quot; + mp);\r\n    if (arms == null) {\r\n      System.out.println(&quot;\u6b66\u5668: \u306a\u3057&quot;);\r\n    } else {\r\n      System.out.println(&quot;\u6b66\u5668:&quot; + arms.getName());\r\n    }\r\n    System.out.println(&quot;\u30a2\u30a4\u30c6\u30e0:&quot;);\r\n    for (Item item: items) {\r\n      System.out.println(item.getName());\r\n    }\r\n  }\r\n\r\n  public Item getItem(String name) {\r\n    for (Item item : items) {\r\n      if (item.getName().equals(name)) return item;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  public boolean isUsable(Item item) {\r\n    return item.isUsable(this);\r\n  }\r\n\r\n  public void useItem(Item item) {\r\n    if (!isUsable(item)) {\r\n      System.out.println(item.getName() + &quot;\u306f\u3001\u4f7f\u3048\u307e\u305b\u3093\u3002&quot;);\r\n      return;\r\n    }\r\n    if (items.contains(item)) {\r\n      System.out.println(item.getName() + &quot;\u3092\u4f7f\u3063\u305f\u3002&quot;);\r\n      item.effect(this);\r\n      items.remove(item);\r\n    } else {\r\n      System.out.println(item.getName() + &quot;\u3092\u6301\u3063\u3066\u306a\u304b\u3063\u305f\uff01&quot;);\r\n    }\r\n  }\r\n\r\n  public void recoverHp(int hp) {\r\n    this.hp += hp;\r\n    if(this.hp &gt; maxHp()) this.hp = maxHp();\r\n  }\r\n  \r\n  public void recoverMp(int mp) {\r\n    this.mp += mp;\r\n    if(this.mp &gt; maxMp()) this.mp = maxMp();\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>Item\u306b\u3082\u3001\u4f7f\u3048\u308b\u304b\u3069\u3046\u304b\u3092\u8abf\u3079\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u7528\u610f\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Item {\r\n  private String name;\r\n  public Item(String name) {\r\n    this.name = name;\r\n  }\r\n  public String getName() {\r\n    return name;\r\n  }\r\n\r\n  public void effect(Brave brave) {\r\n\r\n  }\r\n\r\n  public boolean isUsable(Brave brave) {\r\n    return true;\r\n  }\r\n}\r\n<\/pre>\n<p>\u5404\u30a2\u30a4\u30c6\u30e0\u3067\u3001isUsabel()\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Herb extends Item {\r\n  public Herb() {\r\n    super(&quot;\u3084\u304f\u305d\u3046&quot;);\r\n  }\r\n  @Override\r\n  public void effect(Brave brave) {\r\n    brave.recoverHp(10);\r\n  }\r\n  @Override\r\n  public boolean isUsable(Brave brave) {\r\n    return !brave.isMaxHp();\r\n  }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class SuperHerb extends Item {\r\n  public SuperHerb() {\r\n    super(&quot;\u4e0a\u3084\u304f\u305d\u3046&quot;);\r\n  }\r\n\r\n  @Override\r\n  public void effect(Brave brave) {\r\n    brave.recoverHp(30);\r\n  }\r\n  @Override\r\n  public boolean isUsable(Brave brave) {\r\n    return !brave.isMaxHp();\r\n  }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class HolyWater extends Item {\r\n  public HolyWater() {\r\n    super(&quot;\u305b\u3044\u3059\u3044&quot;);\r\n  }\r\n  public void effect(Brave brave) {\r\n    brave.recoverMp(10);\r\n  }\r\n  @Override\r\n  public boolean isUsable(Brave brave) {\r\n    return !brave.isMaxMp();\r\n  }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u307e\u305a\u3001VSCode\u3067\u65b0\u3057\u304fJava\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 public class App { public static void main(String&#x5B;] args) throws &#8230; <\/p>\n","protected":false},"author":1,"featured_media":59,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[11,17,2],"class_list":["post-52","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-java","tag-rpg","tag-2"],"_links":{"self":[{"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52"}],"version-history":[{"count":20,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions"}],"predecessor-version":[{"id":74,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions\/74"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=\/wp\/v2\/media\/59"}],"wp:attachment":[{"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/java.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}