javaを勉強中なのですが、分からないことがあります。
仮に以下のようなコードがあるとします。
java
1import java.util.*; 2 3public class Cleric1 { 4 5 String name; 6 7 int hp = 50; 8 9 static final int MAX_HP = 50; 10 11 int mp = 5; 12 13 static final int MAX_MP = 10; 14 15 16 public Cleric1(String name, int x, int y ) { 17 18 this.name = name; 19 20 this.hp = x; 21 22 this.mp = y; 23 } 24 25 public Cleric1(String name, int x) { 26 27 this(name,x,Cleric1.MAX_MP); 28 29 } 30}
上記のコードは、引数が2つのコンストラクタ内において、静的フィールドのMAX_MPを使用していますが、これが仮に通常のフィールド、「mp」などであった場合は、this()の中に引数として使用することはできますでしょうか?
タイトルには要件を書いて下さい。 https://teratail.com/help/question-tips#questionTips3-1 タイトルから質問内容が想像できないもの、タイトルと質問内容が食い違っているものはスムーズな回答を得られなくなります。
すみません。修正しました
所謂XY問題というんでしょうか・・・。質問者さんは本当にやりたいことがあり、それを実現するために「これはできるか?」と尋ねておられるような気がします。本当にやりたいことを書いた方がより的確なアドバイスが付きやすくなると思います。
ご指摘ありがとうございます。実は、javaの参考書でコンストラクタの勉強していたのですが、何故、静的フィールドは引数に使えるのに、通常のフィールドは使えないのかなと単純に疑問に思ったため、質問させて頂いたんですよね...
おっと、そういうことだったのですね。そういうことならXY問題ではないですね。失礼しました。
回答3件
あなたの回答
tips
プレビュー