diff --git a/Question13-Extends/src/main/java/Character.java b/Question13-Extends/src/main/java/Character.java new file mode 100644 index 0000000..ae8913e --- /dev/null +++ b/Question13-Extends/src/main/java/Character.java @@ -0,0 +1,66 @@ +public class Character { + // 保持するデータ(完全非公開) + private String name = "キャラクター"; + private int hp; + private int power; + private int defense; + + // 生成方法:生成時に体力・力・防御力の初期値を指定できる + public Character(int hp, int power, int defense) { + this.hp = hp; + this.power = power; + this.defense = defense; + } + + // 名前のアクセサ(ゲッター / セッター) + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + // 攻撃する:自身の「力」の値をそのまま返す + public int attack() { + return this.power; + } + + // ダメージを受ける(相手の攻撃値を受け取る) + public boolean receiveDamage(int attackerPower) { + // 1. ダメージ量 = 受け取った攻撃値 − 自身の防御力(0以下の場合は1とする) + int damage = attackerPower - this.defense; + if (damage <= 0) { + damage = 1; + } + + // 2. 自身の体力からダメージ量を引く + this.hp -= damage; + + // 3. 体力が0以下になった場合は、体力を0に補正し、「戦闘不能」の状態とする + boolean isDown = false; + if (this.hp <= 0) { + this.hp = 0; + isDown = true; + } + + // 4. 次の内容をこの順番で出力する + System.out.println(this.name + "は" + damage + "のダメージを受けた。"); + System.out.println(this.name + "の残り体力は" + this.hp + "。"); + if (isDown) { + System.out.println(this.name + "はちからつきた。"); + } + System.out.println("↓"); + + // 5. 戦闘不能になったかどうかを真偽値で返す + return isDown; + } + + // パラメーター表示:指定の形式の複数行の文字列を返す + public String showStatus() { + return "名 前:" + this.name + "\n" + + "体 力:" + this.hp + "\n" + + " 力 :" + this.power + "\n" + + "耐 久:" + this.defense; + } +} diff --git a/Question13-Extends/src/main/java/Hero.java b/Question13-Extends/src/main/java/Hero.java new file mode 100644 index 0000000..4889be4 --- /dev/null +++ b/Question13-Extends/src/main/java/Hero.java @@ -0,0 +1,5 @@ +class Hero extends Character { + public Hero() { + super(25, 10, 7); + } +} \ No newline at end of file diff --git a/Question13-Extends/src/main/java/Q13_3.java b/Question13-Extends/src/main/java/Q13_3.java new file mode 100644 index 0000000..92d1782 --- /dev/null +++ b/Question13-Extends/src/main/java/Q13_3.java @@ -0,0 +1,11 @@ +public class Q13_3 { + public static void main(String[] args) { + + Hero hero = new Hero(); + + hero.setName("勇者"); + + String status = hero.showStatus(); + System.out.println(status); + } +} diff --git a/Question13-Extends/src/main/java/Q13_4.java b/Question13-Extends/src/main/java/Q13_4.java new file mode 100644 index 0000000..db0548d --- /dev/null +++ b/Question13-Extends/src/main/java/Q13_4.java @@ -0,0 +1,13 @@ + +public class Q13_4 { + public static void main(String[] args) { + + Slime slime = new Slime(); + + slime.setName("スライム"); + + String status = slime.showStatus(); + System.out.println(status); + } + +} diff --git a/Question13-Extends/src/main/java/Slime.java b/Question13-Extends/src/main/java/Slime.java new file mode 100644 index 0000000..510446e --- /dev/null +++ b/Question13-Extends/src/main/java/Slime.java @@ -0,0 +1,5 @@ +class Slime extends Character { + public Slime() { + super(10, 5, 2); + } +} \ No newline at end of file diff --git a/Question14-Interface/.classpath b/Question14-Interface/.classpath new file mode 100644 index 0000000..c771657 --- /dev/null +++ b/Question14-Interface/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/Question14-Interface/.project b/Question14-Interface/.project new file mode 100644 index 0000000..628419d --- /dev/null +++ b/Question14-Interface/.project @@ -0,0 +1,17 @@ + + + Question14-Interface + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/Question14-Interface/.settings/org.eclipse.jdt.core.prefs b/Question14-Interface/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..23fa13b --- /dev/null +++ b/Question14-Interface/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=21 diff --git a/Question14-Interface/.settings/org.eclipse.wst.common.project.facet.core.xml b/Question14-Interface/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..c1a8d07 --- /dev/null +++ b/Question14-Interface/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/Question15-Polymorphism/.classpath b/Question15-Polymorphism/.classpath new file mode 100644 index 0000000..c771657 --- /dev/null +++ b/Question15-Polymorphism/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/Question15-Polymorphism/.project b/Question15-Polymorphism/.project new file mode 100644 index 0000000..a05b1e2 --- /dev/null +++ b/Question15-Polymorphism/.project @@ -0,0 +1,23 @@ + + + Question15-Polymorphism + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.jdt.core.javanature + + diff --git a/Question15-Polymorphism/.settings/org.eclipse.jdt.core.prefs b/Question15-Polymorphism/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..23fa13b --- /dev/null +++ b/Question15-Polymorphism/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=21 diff --git a/Question15-Polymorphism/.settings/org.eclipse.wst.common.project.facet.core.xml b/Question15-Polymorphism/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..c1a8d07 --- /dev/null +++ b/Question15-Polymorphism/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + +