質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1167閲覧

pythonで条件を満たす RPGCharacter という抽象クラスを定義したい

Rondon7251

総合スコア89

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/09 04:56

編集2020/04/10 09:18

RPGCharacter という抽象クラスを定義して3種類以上の職業クラス(具体クラス)を定義したい。
最後に、定義した職業クラスに基づくオブジェクトを5つ生成し、動作を確認する。

・フィールド:
- キャラクタ名前を示すインスタンス変数 name
- キャラクタのレベルを示すインスタンス変数 level
- キャラクタのHPを示すインスタンス変数 hp
- キャラクタのMPを示すインスタンス変数 mp
- パーティー人数を示すクラス変数 party_num
・メソッド:
- コンストラクタ
- 各種フィールドのゲッタ、セッタ
- キャラクタの情報を表示するメソッド display
- パーティー人数を表示するクラスメソッド displayPartyNum

java

1public class Kadai12 { 2 public static void main(String[] args){ 3 Warrior sensi = new Warrior ("戦士",50,150,100); //クラス名 変数名 = new クラス名();         4 sensi.display(); 5 Which mahoutukai = new Which("魔法使い",50,100,150); 6 mahoutukai.display(); 7 DragonKnight ryukisi = new DragonKnight("竜騎士",60,200,140); 8 ryukisi.display(); 9 Maou satan = new Maou("サタン",100,999,999); 10 satan.display(); 11 God kami = new God("神",999,9999,9999); 12 kami.display(); 13 RPGCharacter.displayPartyNum(); 14 } 15} 16 17abstract class RPGCharacter{ //RPGCharacter抽象クラス 18 19 public RPGCharacter(String name,int level, int hp, int mp){ 20 this.name = name; 21 this.level = level; 22 this.hp = hp; 23 this.mp = mp; 24 25 party_num++; 26 } 27 protected String name;//String型のprotectedな変数name 28 protected int level;//int型のprotectedな変数level 29 protected int hp;//int型のprotectedな変数hp 30 protected int mp;//int型のprotectedな変数mp 31 protected static int party_num;//int型のstaticかつprotectedな変数party_num 32 33 abstract void setName(String name); //セッタ set変数名(代入値) 34 abstract void setLevel(int level); 35 abstract void setHp(int hp); 36 abstract void setMp(int mp); 37 abstract void setParty_num(int party_num); 38 39 abstract String getName(); //ゲッタ get変数名() 40 abstract int getLevel(); 41 abstract int getHp(); 42 abstract int getMp(); 43 abstract int getParty_num(); 44 45 46 public void display(){ //displayメソッド 47 System.out.println("名前;"+name); 48 System.out.print("LV;"+level+" "); 49 System.out.print("HP;"+hp+" "); 50 System.out.println("MP;"+mp); 51 } 52 static void displayPartyNum(){ //displayPartyNumメソッド 53 System.out.println("パーティ人数;"+party_num); 54 } 55} 56 57class Warrior extends RPGCharacter { //Warriorクラス 継承 58 59 public Warrior(String name,int level,int hp,int mp){ 60 super(name,level,hp,mp); 61 } 62 public void setName(String name){ //セッタ 63 this.name = name; 64 } 65 public void setLevel(int level){ 66 this.level = level; 67 } 68 public void setHp(int hp){ 69 this.hp = hp; 70 } 71 public void setMp(int mp){ 72 this.mp = mp; 73 } 74 public void setParty_num(int party_num){ 75 this.party_num = party_num; 76 } 77 78 public String getName(){ //ゲッタ 79 return this.name; 80 } 81 public int getLevel(){ 82 return this.level; 83 } 84 public int getHp(){ 85 return this.hp; 86 } 87 public int getMp(){ 88 return this.mp; 89 } 90 public int getParty_num(){ 91 return this.party_num; 92 } 93} 94class Which extends RPGCharacter {//Whichクラス 継承 95 96 public Which(String name,int level,int hp,int mp){ 97 super(name,level,hp,mp); 98 } 99 100 public void setName(String name){ 101 this.name = name; 102 } 103 public void setLevel(int level){ 104 this.level = level; 105 } 106 public void setHp(int hp){ 107 this.hp = hp; 108 } 109 public void setMp(int mp){ 110 this.mp = mp; 111 } 112 public void setParty_num(int party_num){ 113 this.party_num = party_num; 114 } 115 116 public String getName(){ 117 return this.name; 118 } 119 public int getLevel(){ 120 return this.level; 121 } 122 public int getHp(){ 123 return this.hp; 124 } 125 public int getMp(){ 126 return this.mp; 127 } 128 public int getParty_num(){ 129 return this.party_num; 130 } 131} 132class DragonKnight extends RPGCharacter {//DragonKnightクラス 継承 133 134 public DragonKnight(String name,int level,int hp,int mp){ 135 super(name,level,hp,mp); 136 } 137 138 public void setName(String name){ 139 this.name = name; 140 } 141 public void setLevel(int level){ 142 this.level = level; 143 } 144 public void setHp(int hp){ 145 this.hp = hp; 146 } 147 public void setMp(int mp){ 148 this.mp = mp; 149 } 150 public void setParty_num(int party_num){ 151 this.party_num = party_num; 152 } 153 154 public String getName(){ 155 return this.name; 156 } 157 public int getLevel(){ 158 return this.level; 159 } 160 public int getHp(){ 161 return this.hp; 162 } 163 public int getMp(){ 164 return this.mp; 165 } 166 public int getParty_num(){ 167 return this.party_num; 168 } 169} 170class Maou extends RPGCharacter {//Maouクラス 継承 171 172 public Maou(String name,int level,int hp,int mp){ 173 super(name,level,hp,mp); 174 } 175 176 public void setName(String name){ 177 this.name = name; 178 } 179 public void setLevel(int level){ 180 this.level = level; 181 } 182 public void setHp(int hp){ 183 this.hp = hp; 184 } 185 public void setMp(int mp){ 186 this.mp = mp; 187 } 188 public void setParty_num(int party_num){ 189 this.party_num = party_num; 190 } 191 192 public String getName(){ 193 return this.name; 194 } 195 public int getLevel(){ 196 return this.level; 197 } 198 public int getHp(){ 199 return this.hp; 200 } 201 public int getMp(){ 202 return this.mp; 203 } 204 public int getParty_num(){ 205 return this.party_num; 206 } 207} 208class God extends RPGCharacter {//Kamiクラス 継承 209 210 public God(String name,int level,int hp,int mp){ 211 super(name,level,hp,mp); 212 } 213 214 public void setName(String name){ 215 this.name = name; 216 } 217 public void setLevel(int level){ 218 this.level = level; 219 } 220 public void setHp(int hp){ 221 this.hp = hp; 222 } 223 public void setMp(int mp){ 224 this.mp = mp; 225 } 226 public void setParty_num(int party_num){ 227 this.party_num = party_num; 228 } 229 230 public String getName(){ 231 return this.name; 232 } 233 public int getLevel(){ 234 return this.level; 235 } 236 public int getHp(){ 237 return this.hp; 238 } 239 public int getMp(){ 240 return this.mp; 241 } 242 public int getParty_num(){ 243 return this.party_num; 244 } 245}

javaだとこんな感じです。
pythonだとどのようにすればいいのかわかりませんでした。
何かわかる方いましたら教えてください。

pythonだとどのように処理が変わるのでしょうか
部分的にでもいいので教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2020/04/09 05:22

どこが分からないのでしょうか? 分からない部分を具体的に質問欄へ記載してください。
guest

回答1

0

ベストアンサー

Java と Python では、クラス定義などの基本的な構成はほとんど変わりません。
Python はインデントでブロックを定義する文法なので、コードは全体的に書き直す必要があると思います。

投稿2020/04/10 21:05

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問