public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
この中で、char suffixがどういう意図で何に使われるために記述されているのかが分かりません。
また、
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
はどのように出力されますでしょうか?
よろしくお願いいたします。
当該のソースコードは「スッキリわかるJava入門」のサンプルコードの様にみえます。使用例として Main.java が以下の様に記述されていますので、suffix は matango インスタンスの ID なのではないかと思います。(正確なことは書籍に説明が記載されているでしょう)
public class Main {
public static void main(String[] args) {
Hero h = new Hero();
h.name = "ミナト";
h.hp = 100;
Matango m1 = new Matango();
m1.hp = 50;
m1.suffix = 'A';
Matango m2 = new Matango();
m2.hp = 48;
m2.suffix = 'B';
// 冒険のはじまり
h.slip();
m1.run();
m2.run();
h.run();
}
}
> char型の変数、suffixを定義しているのは分かっており、その上で質問させていただいております。
そういう意味ではタイトルが適切ではないですね。
> どうしてこの質問がされているのか、質問者は何が分かっていないのか、をもう少し深く考えて汲み取ることが出来ると、この質問以外にも的を得た解答を出来るようになるのではないですか?
まで考えることが出来る人であれば、ちゃんと質問文を書けば良いのにと思ってしまいます。
「この文脈で、suffix というのはどういう目的の変数で、何を保持するのでしょうか?」
的な質問文だけで良かったのでは?(もうちょっと練った方が良いと思いますが)
それが分かれば、
> System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
> はどのように出力されますでしょうか?
は自明なので質問に書く必要がない。
質問に帰ると、短い断片だけ示されて、変数の意図を聞かれても分かるわけがない。
suffixに代入するコードや他のsuffixを使っている部分も全部見ないと。
(長いコードだと見る気がしませんが)
"お化けキノコ" + this.suffix + "は逃げ出した!"
から推測すると、キノコが複数あって、それらの区別のために"お化けキノコA" "お化けキノコB"みたいな物かということくらいですが、それくらいは「char suffix;」の文法的な意味とsuffixという英単語の意味が分かっている人であれば、他人に聞かなくても推測できるだろうし、この断片からはそれ以上分かるわけないです。
この質問の仕方だと「書籍のサンプルコードだけ見ていて書籍は読んでない」か「説明がろくにされてない適当なコードだけのWeb記事を読んでいる」かのどちらかかな、と想像します。書籍を読んでいてわからないところを質問しているとは到底思えません。(「嘘だろ?」と思いました)
状況として何を伝えれば十分なのか? がわからないのが初心者ですから、質問者側の状況を汲んで回答してほしい、はもちろんわかります。
書籍の説明が足りてないのもわかります。
でも「もう少し深く考えて汲み取って」なんて、説明をサボった人が、質問だけから汲める範囲のストレートな回答に対して言うことではないでしょう。
この書籍のここのサンプルコードについて質問しています、とか、melian さんが引用したこれを使っているコードくらいは今からでも追加するといいと思います。
-_-Zzzzz さんがコメントした旨を報せるメールが届いているのですが(11:59投稿)、手元のブラウザ(Chrome, FireFox)では表示されません。内容はベストアンサー云々ということですが、-_-Zzzzz さんの自己回答・承認でよいかと思います。