59歳の初転職

59歳 初転職で派遣社員になる

職業訓練 44日目 JAVA

isakurad2

39 SAIGON  二回目

 前回は ブンチャ・ハノイ 

         職業訓練 12日目 アプリケーション開発環境演習 - おじさんJAVA入門記


 今回は ランチCセット フォー・ガー です。



この店は 良いな。 

お近くの方はぜひどうぞ。


職業訓練 JAVA 

 スレッド



AIとお勉強


//独自例外クラス

class DeadCharacterException extends Exception {

public DeadCharacterException(String message) {

super(message);

}

}


//基底クラス

abstract class Character {

private String name;

private int hp;

public Character(String name,int hp) {

this.name = name;

this.hp = hp;

}

public String getName() {

return name;

}

public int getHp() {

return hp;

}

public boolean isAlive() {

return hp > 0;

}

public void takeDamage(int damage) {

hp -= damage;

if(hp < 0) hp =0;

System.out.println(name + " は " + damage + " ダメージを受けた! 残りHP: " + hp);

}

public abstract void attack(Character target) throws DeadCharacterException;

}

//派生クラス 戦士

class Warrior extends Character {

public Warrior(String name, int hp) {

super(name, hp);

}


@Override

public void attack(Character target) throws DeadCharacterException {

if (!isAlive()) {

throw new DeadCharacterException(getName() + " は戦闘不能で攻撃できない!");

}

System.out.println(getName() + " の剣攻撃!");

target.takeDamage(15);

}

}


//魔法使い

class Mage extends Character{

public Mage(String name,int hp) {

super(name,hp);

}

public void attack(Character target) throws DeadCharacterException {

if (!isAlive()) {

throw new DeadCharacterException(getName() + " は戦闘不能で魔法を唱えられない!");

}

System.out.println(getName() + " のファイアボール!");

target.takeDamage(20);

}

}


public class BattleSystemWithStackTrace {

public static void main(String[] args) {

Character warrior = new Warrior("アルス",30);

Character mage = new Mage("ルナ",40);

try {

warrior.attack(mage);

mage.attack(warrior);

// HPをゼロにしてみる

warrior.takeDamage(50); // アレス戦闘不能


// 戦闘不能キャラが攻撃 → 例外発生

warrior.attack(mage);

}catch (DeadCharacterException e) {

System.out.println("例外発生: " + e.getMessage());

System.out.println("スタックトレースを表示します:");

e.printStackTrace(); // ここで「どこで例外が発生したか」が分かる

}

}

}



アルス の剣攻撃!

ルナ は 15 ダメージを受けた! 残りHP: 25

ルナ のファイアボール!

アルス は 20 ダメージを受けた! 残りHP: 10

アルス は 50 ダメージを受けた! 残りHP: 0

例外発生: アルス は戦闘不能で攻撃できない!

スタックトレースを表示します:

DeadCharacterException: アルス は戦闘不能で攻撃できない!

at Warrior.attack(BattleSystemWithStackTrace.java:52)

at BattleSystemWithStackTrace.main(BattleSystemWithStackTrace.java:91)

44日目/113日間