
前回の記事では、召喚の呪文(new)を唱えて、初期化の儀式(コンストラクタ)を経て、 勇者キャラクターという実体(インスタンス)が降臨するところまでお話ししました。
前回の記事はこちら👇
今回は、誕生した勇者に「命を吹き込む」ための、メソッドについて解説します✍️
⚔️ メソッドとは?:勇者の「コマンド(行動)」
コンストラクタが「誕生時の初期設定」なら、メソッドは「その後にできるアクション」のことです。
RPGの戦闘画面を思い出してください。
「たたかう」「じゅもん」「ぼうぎょ」「にげる」……
これら一つ一つが、Javaでいうところのメソッドにあたります。
クラス(設計図): 勇者は「たたかう」や「回復」ができる、という定義。
メソッド(行動): 実際に剣を振ったり、呪文を唱えたりする具体的な動き。
📝 実際に特技を覚えさせてみよう!
前回の Hero クラスに、特技(メソッド)を追加してみます。
class Hero { String name; int hp; // コンストラクタ(誕生時の初期設定) public Hero(String name) { this.name = name; this.hp = 100; } // ★特技1:攻撃(メソッド) public void attack(String monster) { System.out.println(this.name + " は " + monster + " を攻撃した!"); System.out.println("8ポイントのダメージを与えた! 💥"); } // ★特技2:回復(メソッド) public void heal() { this.hp += 20; System.out.println(this.name + " はホイミを唱えた! ✨"); System.out.println("HPが20回復した! (現在のHP: " + this.hp + ")"); } }
🔍 メソッドの「3つのパーツ」を解剖
メソッドを自分で書くときは、以下の「3つのポイント」に注目してください。
先ほどの public void attack(String monster) を例に見てみましょう。
1️⃣ void(戻り値):お礼や結果はもらえる?
void(ボイド) は英語で「空っぽ」という意味です。
「攻撃して終わり!(結果のデータは返さなくていいよ)」という場合は void を使います。
もし「ダメージの計算結果を返して!」という場合は、ここに int(数字)などを書きます。
2️⃣ attack(メソッド名):技の名前は?
そのアクションを表す名前をつけます。
Javaでは、誰が見ても分かりやすいように「動詞」から始めるのが一般的です(eat, run, print など)。
3️⃣ (String monster)(引数):何に対して行う?
「誰を攻撃するのか」「いくら回復するのか」といった、実行に必要な材料(データ)をカッコの中に書きます。
これを 「引数(ひきすう)」 と呼びます。
※必要ない場合は () のように空っぽでOKです!
🤔 どうやって実行するの?
インスタンス(勇者の実体)を作った後、「ドット( . )」を使って命令を出します。
public static void main(String[] args) { // 1. 勇者を生み出す(インスタンス化) Hero h1 = new Hero("アルス"); // 2. 特技を使わせる(メソッド呼び出し) h1.attack("スライム"); // アルス は スライム を攻撃した! h1.heal(); // アルス はホイミを唱えた! }
「h1(アルスくん) .(に命令だ!) attack(攻撃しろ!) 相手は "スライム" だ!」 というイメージで読んでみると、イメージしやすいかもしれません。
🌟 メソッドのここがすごい!
メソッドを作る最大のメリットは、「同じ命令を何度でも使い回せる」ことです。
もしメソッドがなかったら、攻撃するたびに「System.out.println(...)」と長いコードを何度も書かなければなりません。
でも、一度メソッドとして定義しておけば、次からは h1.attack("スライム"); の一行を書くだけで、何度でも同じアクションをしてくれます!
🔍 まとめ
メソッド = インスタンスができる 「アクション(動詞)」のこと
引数 = 命令を出すときに渡す 「材料・ターゲット」
戻り値 = 命令が終わった後にもらえる 「お返し・結果」
さて、これで勇者は立派に戦えるようになりました!
次回は、さらに色々なキャラクターやモンスターを作って冒険を進めていきましょう!🎮
「メソッドって何?」と悩んでいる方の参考になれば幸いです 🙌